2

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

问题是令牌的到期时间是 10 分钟,如果测试超过该持续时间,那么其余的调用将失败并出现 401。有没有办法可以重复我在 5 分钟后重复拨打的第一个电话,以便新的访问令牌始终可用?谢谢。

在此处输入图像描述

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

4

2 回答 2

1

您想在中间重新执行身份验证令牌请求,然后使用最新令牌进行进一步请求。现在,您可以按照以下计划实现此目的:-

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

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

  2. 在两者之间,您可以放置​​“模块控制器”并选择“Auth Token Simple Controller”或您拥有的任何控制器。

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

在此处输入图像描述

于 2018-04-14T07:43:35.003 回答
1

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

我将令牌保存在变量中并将其传递给另一个线程组。此链接将让您了解如何操作如何在 JMeter 中将变量从一个线程组传递到另一个线程组

于 2018-04-16T06:14:20.117 回答