使用jmeter以给定间隔重复验证令牌请求

时间:2018-04-13 06:16:44

标签: jmeter jmeter-4.0

我有一个JMeter脚本,可以测试大约25种不同的REST API(这不是负载测试,而是API功能测试)。所有这些API都需要我在测试开始时生成的基于OAuth的访问令牌,并保存在一个变量中,然后由所有后续API调用使用。

问题是令牌的到期时间为10分钟,如果测试超过该持续时间,则其余的呼叫将以401失败。有没有办法可以重复我在5分钟后重复进行的第一次呼叫所以一个新的访问令牌总是可用?感谢。

jQuery event delegation

不确定此图像是否有帮助,但opentokenID调用会生成访问令牌,然后是使用它的所有其他调用。我想知道是否有一些机制在测试过程中重新执行opentokenId调用,以获得新的访问令牌。

2 个答案:

答案 0 :(得分:1)

您希望在中间重新执行身份验证令牌请求,然后使用最新令牌进行进一步请求。现在,您可以实现此目标,如下面的计划所示: -

1.具有身份验证请求的简单控制器。

  1. N个多个控制器和请求。

  2. 在两者之间你可以放置"模块控制器"并选择" Auth Token Simple 控制器"或者你拥有的任何控制器。

  3. 一旦您的线程到达模块控制器,它将重新执行Auth令牌请求,然后继续进行如下所示。 认为,这不依赖于时间,但我认为这足以满足您的要求。如果需要,可以添加"模块控制器"在测试计划的多个地方。

    enter image description here

答案 1 :(得分:0)

这对我有用。我创建了一个单独的线程组,并将auth令牌调用移动到该组。此外,令牌的到期时间是10分钟,所以我把一个7分钟的计时器放在一个循环中(实际上是一个正在检查值为false的终止控制器终止)。因此,线程组每7分钟执行一次令牌调用。

我将令牌保存在变量中并将其传递给另一个线程组。此链接将让您了解如何执行此操作How do I pass a variable from one Thread Group to another in JMeter