Asynchronous 特定HTTP请求中的JMeter异步延迟
给定一个具有两个端点的API:Asynchronous 特定HTTP请求中的JMeter异步延迟,asynchronous,jmeter,stress-testing,Asynchronous,Jmeter,Stress Testing,给定一个具有两个端点的API: 提交 结果 假设需要20个提交,然后API服务器开始计算特定用户的结果 考虑到这样的计算需要1到5秒才能完成 考虑到目前我的JMeter脚本能够成功地提交所有这些内容,并且它会不断地查询结果端点,直到收到结果为止 考虑到我目前面临的恼人问题是,由于结果端点是一个非常轻/快速的请求(如果结果尚未计算),更多的请求最终会进入结果端点,而不是提交端点 鉴于这种行为扭曲了总体吞吐量的测量 如果添加一个常量计时器会阻塞整个请求线程,并且在计时器完成之前不会发出其他请求 那么
提交
结果
提交,然后API服务器开始计算特定用户的结果
考虑到这样的计算需要1到5秒才能完成
考虑到目前我的JMeter
脚本能够成功地提交所有这些内容,并且它会不断地查询结果端点
,直到收到结果为止
考虑到我目前面临的恼人问题是,由于结果端点
是一个非常轻/快速的请求(如果结果尚未计算),更多的请求最终会进入结果端点
,而不是提交端点
鉴于这种行为扭曲了总体吞吐量的测量
如果添加一个常量计时器
会阻塞整个请求线程,并且在计时器完成之前不会发出其他请求
那么我的问题是:JMeter
是否以一种或另一种方式提供了以下能力:
对请求进行优先级排序(因此results endpoint
的优先级较低),或者
在异步的基础上对HTTP请求引入延迟,以便结果端点
请求不会占用API的所有注意力
假设添加一个常量计时器会阻止整个请求
线程,并且在计时器完成之前不会发出任何其他请求
看起来你的样品在同一个线程组中,不是吗
如果是,则将其划分:为“结果”请求建立单独的线程组,并在其中设置所需的计时
虽然如果你先展示你的计划会很好
UPD:因此您需要在线程之间进行通信
然后您可以使用JMeter属性(这似乎是最简单、最粗糙的方法)。
或者使用文件或其他存储(例如,memdb中的一些简单存储)作为共享资源。
或使用此:。
或者你自己把这些方法结合起来写
假设添加一个常量计时器会阻止整个请求
线程,并且在计时器完成之前不会发出任何其他请求
看起来你的样品在同一个线程组中,不是吗
如果是,则将其划分:为“结果”请求建立单独的线程组,并在其中设置所需的计时
虽然如果你先展示你的计划会很好
UPD:因此您需要在线程之间进行通信
然后您可以使用JMeter属性(这似乎是最简单、最粗糙的方法)。
或者使用文件或其他存储(例如,memdb中的一些简单存储)作为共享资源。
或使用此:。
或者自己结合这些方法写一些东西。你能在这里展示一下你的计划吗?那会有帮助的。你能在这里展示一下你的计划吗?那会help@yuri_g您是对的,我只为所有端点使用一个线程组。我的结果端点需要从提交端点收到的响应提供的特定id。我只需要找出一种方法,将这样的值从一个线程组传递到另一个线程组。@yuri_g您是对的,我的所有端点只使用一个线程组。我的结果端点需要从提交端点收到的响应提供的特定id。我只需要找出一种方法,将这些值从一个线程组传递到另一个线程组。