8.控制器--压测场景设计
一:线程组(ctrl+1快速新建http请求)
1.1:在5秒内启动10的线程(10个用户),每个用户循环2次

1.2:压测
负载测试---永远和调度器一起勾选用

启动延迟:10(所有已启动的线程组用户延迟10秒开始跑请求)
启动时间:如果启动时间在当前北京时间以前(过去的时间),以持续时间为准
启动时间:如果启动时间在当前北京时间以后(未来的时间)
持续时间和启动-结束时间以谁先结束为准

测试使用场景:过去时间配启动延迟和持续时间,未来时间不配延迟和持续时间
Delay Thread creation until need(延迟分配线程资源):勾选---启动线程是逐步分配资源(针对线程数比较大时要勾选),不勾选---线程资源一次全部分配。
二:控制器
1.循环控制器
1.1:永远/不填,代表永远循环
可以用于接口测试分组,
遍历变量:Debug Sampler和计数器一起
2.简单控制器---比较简单,一般用于文件夹分组的功能

3:ForEach控制器---遍历变量
默认勾选Add取的是${id}取id_1,id_2
不勾选Add取的是${id}取id1,id2

4:模块控制器---用于调用控制器不能调用请求(增加了复用性)
控制器禁用状态,也可以作为模块控制器调用


使用场景:跨线程组调用控制器,实现跨线程组之间的cookies传递(http请求登录)
5:if控制器
1.1:不遵从格式


1.2:遵从格式---表达式两边一定要用引号,在用JavaScript,jexl3(用的少),groovy函数嵌套使用


等于和不等于
${__javaScript("${number}"=="0",)} ${__javaScript("${number}"!="0")}
多个条件&& 或是||
${__javaScript("${number}"!="0"&&"${number}"!="0")}
格式提示如下

12.1:__javaScript函数格式

12.2:__groovy函数格式

6:while控制器---
条件为空,控制器下的请求一直运行到报错才会停止
填了条件值,满足条件时,自动运行,直到不满足条件时停止
6.1:使用方法和if控制器格式一样
7:吞吐量控制器
1:按总执行数(指定线程数)---Total Execution
总执行数1000 登录执行一次, 修改项目执行--299次,聚合报告查看




2:按总线程数百分比执行---Percent Executions


3:勾选Per User---每个用户单独执行次数(线程循环次数1000*10%),10个用户总执行次数10*1000*10%(和不勾选时执行的总数是一样,但勾选会区分里面具体用户)--压测

8:事务控制器(把多个请求封装在一个事务中,打卡的业务流程封装在一个事务中)----压测
勾选---Generate parent sample 结果只会展示事务控制器(具体请求需要下拉查看)
业务时间由
线程执行时间控制的


9:权重控制器(和吞吐量类似)---bzm - Weighted Switch Controller
1.1:没有需要下载插件{在插件管理(选项---plugins Manager)

1.2:没有插件管理项---需要在lib/ext导入jar包
网址:https://jmeter-plugins.org/wiki/PluginsManager/ 下载JAR file

1.3:bzm - Weighted Switch Controller配置百分比



9:仅一次控制器,单独在线程组下,由线程数决定次数,如果在循环控制器下,线程数*循环次数(与循环控制器循环次数无关)
2个线程数--2次登录,其他请求按循环总数


10:Critical Section Controller控制器---作用是严格按照请求的前后顺序执行,牺牲了tps(每秒事务数)
循环几次就循环跑控制器下所有请求几次跑有业务场景关联关系



11:bzm - Parallel Controller并行控制器(测试同时编辑提交,测试接口幂等性)
并行:请求同一毫秒级别运行, 并发:不一定是同一毫秒,所有的进程都在跑,但不能保证都是同一时刻运行

12:Switch Controller控制器---Switch
1:默认不填是0,跑第一个请求,1是跑第2个请求


2:线程组勾选永远,Switch为随机数,结果会随机跑


13:随机控制器
每次跑随机控制器下的随机一个请求-----(就是变相的Switch+随机数)
上面加个循环器就可以随机压测
14:随机顺序控制器
每次都运行完控制器下的所有请求,但请求的顺序是随机
循环一次:
循环三次:
15:交替控制器:每次运行一个请求,循环几次,按上下顺序运行控制器下的几个请求
运行一次:
运行两次:
运行三次:
二:聚合报告
Average:平均时间 95%Line:95%的线程在时间范围内 Error%:错误率 涉及到钱要为0% 一般5%就可以
Throughput(tps):每秒处理事务数(个/s)---由产品定标准



浙公网安备 33010602011771号