JMeter:如何在Thread Group中改变请求

时间:2014-09-02 21:10:29

标签: jmeter

我必须使用JMeter为Web应用程序编写负载测试。该应用程序有可用于预订的项目,每个项目都有一个预订'按钮。如果某个用户单击此按钮作为项目,则其他用户将无法使用该按钮。我的问题是: 是否可以使JMeter线程预订不同的项目(发出不同的请求)以及如何实现它?

2 个答案:

答案 0 :(得分:1)

是的,如果每个项目都有静态(预定义)唯一ID,描述符,标识符,则可以使用csv配置文件或随机编号进行参数化。生成器和选择器

随机没有生成器和选择器只适用于整数,但csv配置是更好/标准的做法。如果您需要更多帮助,请在此处粘贴测试计划,并说明您的需求。

答案 1 :(得分:1)

您应该能够确定不同的" Book"按钮并根据需要修改嵌套请求。测试计划结构应该是这样的:

  • 打开预订页面 - HTTP请求
    • 获取所有预订ID - 后处理器
  • 预订 - HTTP请求

其中"后处理器"可以

如果有多个匹配,后处理器将返回多个变量,如

BookindID_1=some value
BookindID_2=some other value
BookindID_3=some other value 2
....
BookindID_matchNr=10

如何处理这些值至少有两个选项:

  1. 使用ForEach Controller
  2. 迭代所有值
  3. 通过__threadNum功能坚持当前虚拟线程号,因此线程#1将采用BookindID_1变量,线程#2 - BookingID_2变量值等。
  4. 也可以使用__Random函数获取随机值,但如果项目不可用,则可能导致请求失败。

    2个变量组合的正确方法如下:

    ${__V(VAR1${VAR2})}
    

    因此,将BookingID_N__threadNum结合起来会是

    ${__V(BookingID_${__threadNum})}
    

    有关通过功能可以完成的工作的更多信息,请参阅How to use JMeter Functions帖子系列。