调整次数,调整的是「并发用户数」
在这个场景中,完全没有设置「并发用户数」的地方,是通过自动调整并发用户数来实现的
bzm - Arrivals Thread Group
不同数量的并发用户,向服务器发起不同的接口请求
因为并发用户数量设置,是要使用线程组的。所以「不同数量的并发用户」需要使用多个线程组
多个线程组
jmeter中,写脚本,最难的技术点,是跨线程组传参
用户定义变量:全局变量,可以跨线程组。在启动时获取一次,在运行过程中不会动态获取值 用户参数:局部变量,不能直接跨线程组
jmeter属性
系统属性:
为了让数据读取的比较整齐,将注册与属性设置放在一个「事务控制器」中
事务控制器
HTTP请求
用户参数
使用JSON取样器将返回内容进行提取
JSON取样器
编写两个「调试取样器」进行属性的设置
${__setProperty(pro_mobile,${gmobile},)}
${__setProperty(pro_gqid,${gqid},)}
设置手机号
设置gqid
运行一次查看「属性显示」
image-20210509104547525
在HTTP请求中电话号码和gqid设置为
${__property(pro_mobile,,)}
${__property(pro_gqid,,)}
HTTP请求
由于Jmeter中线程数同时运行的,所以会出现获取到的值为上一次的值
当并发数量增加后,会出现多个请求使用了同一个属性
属性名称设置时携带「线程号」
${__setProperty(pro_mobile_${__threadNum},${gmobile},)}
${__setProperty(pro_gqid_${__threadNum},${gqid},)}
登录接口
{
"mobile": "${__property(pro_mobile_${__threadNum},,)}",
"gqid":"${__property(pro_gqid_${__threadNum},,)}",
"password": "123456"
}
波浪:有一定的时间规律
x轴:时间
y轴:并发用户数
终极线程组
添加三条:
110秒=第一条的30秒+60秒+10秒+ 10秒等待时间
波浪