接下来的情况是:我需要使用 jmeter 运行性能测试。我已经设置了几个 Graphql 请求,对它们进行了测试,它们运行良好。接下来是流程的想法:
- 用户使用 graphql 突变登录平台,并在响应标头中收到 accessToken,有效期为一小时。
- 下一个 graphql 请求必须解析生成的令牌,并使用这个令牌执行下一个突变。
- 这个想法是用 250k 个请求测试平台,这需要 1 个多小时,并且您可能理解 - 令牌已过期。
我在脚本中做了什么:
- 我创建了 2 个线程组。首先,有一个 Flow is Control 动作元素,它设置为暂停持续时间 3600000 毫秒。这意味着它将每小时运行一次登录请求。
- 我正在使用 JSON 提取器抓取令牌,并使用 BeanShell 后处理器通过以下命令对其进行打包:
props.put("accessToken", vars.get("accessToken"));
- 第二个线程组有一个 Graphql 请求来执行对服务器的 250k 请求,并使用来自 HTTP 标头的令牌值:
Bearer ${__P(accessToken)}
一切正常,接受这个事实,我不知道如何设置场景,在第二个线程组完成 250k 个请求之后,登录的线程组将完成其运行。我已经尝试将循环控制器添加到登录,设置为无限,但是一旦第二组完成 250k 请求 - 运行将不会完成,因为登录将每小时运行一次。
有任何想法吗?