我们有2个API,需要运行4小时测试,测试需要使用200个线程运行。1)第一个API将生成不记名令牌,仅需要使用线程数(即200个线程)运行,令牌有效期为1小时。2)第二个API将使用第一个API中的令牌,并将运行4小时。注:我们不需要运行第一个API超过200次。如何在JMeter中实现?任何建议将不胜感激。
idfiyjo81#
如果您希望1st API请求只执行一次,则可以将其放在“仅一次”控制器下,但是我发现此设置存在一个问题:在测试的第一个小时后,令牌将过期,您将需要以某种方式刷新它,因此您的second API将在1小时后开始失败,并将在接下来的3小时内失败。我宁愿将这两个API请求放到不同的线程组,并通过添加流控制操作采样器并将其配置为休眠3 599 000毫秒,将1st API配置为每小时运行一次
1st API
second API
3 599 000
承载令牌可以通过两种方式在线程组之间传递:1.在第一个线程组中使用__setProperty()函数设置标记值,在第二个线程组中使用__P()函数读取该值1.使用Inter-Thread Communication Plugin
p5cysglq2#
这种方法似乎是不正确的。当令牌第一次生成时,它会在给定的等待时间内暂停当前线程。有没有办法,令牌可以每隔1小时生成一次,并在测试中使用,而不会有任何延迟或暂停时间。
2条答案
按热度按时间idfiyjo81#
如果您希望
1st API
请求只执行一次,则可以将其放在“仅一次”控制器下,但是我发现此设置存在一个问题:在测试的第一个小时后,令牌将过期,您将需要以某种方式刷新它,因此您的second API
将在1小时后开始失败,并将在接下来的3小时内失败。我宁愿将这两个API请求放到不同的线程组,并通过添加流控制操作采样器并将其配置为休眠
3 599 000
毫秒,将1st API
配置为每小时运行一次承载令牌可以通过两种方式在线程组之间传递:
1.在第一个线程组中使用__setProperty()函数设置标记值,在第二个线程组中使用__P()函数读取该值
1.使用Inter-Thread Communication Plugin
p5cysglq2#
这种方法似乎是不正确的。当令牌第一次生成时,它会在给定的等待时间内暂停当前线程。有没有办法,令牌可以每隔1小时生成一次,并在测试中使用,而不会有任何延迟或暂停时间。