一、逻辑控制器
1、条件
默认:勾选了Interpret...,则 条件表达式的运行结果必须为 真 或者 假
所以,表达式中,要有动作行为,就要使用函数 ${__groovy(,)}或${__jexl3(,)}
判断条件建议使用引号将变量处理一下,避免类型不一样
如果没有勾选,则运行之后判断运行结果是否为真假,因此不需要函数表达式
2、循环
不断地循环自己
3、foreach
当我们的变量名称,类似“变量名_递增的数字”,我们想用这些变量,我们可以使用该控制器
4、事务控制器
Jmeter中,默认一个取样器执行一次请求,是一个事务
查看结果树
它里面显示的是 事务, 而不是取样器
收到的是相应的先后顺序,而不再是请求的先后顺序
聚合报告
每一行都是事务
样本就是事务请求的执行次数
平均值...最大值:响应时间(毫秒)
90% 95% 99%:表示能达到该时间的请求占比
异常:标准一般是0.1%
吞吐量:在性能测试中,如果想把吞吐量当作TPS来衡量性能指标
条件:并发用户数不变+网络没有瓶颈
因为吞吐量是一个平均值,完全无法体现并发用户数,因此增加的用户会导致吞吐量没有参考价值,而吞吐量是衡量网络的重要指标之一,因此要求没有瓶颈
最后两列:吞吐率(KB/sec)
我们平时说的带宽的Mb 1B=8b
1Mb=1024Kb=1024/8 KB=128KB/s
100Mb = 12800KB/s
做性能测试,是先对单接口进行性能测试,得到单节口的性能指标,然后,再把多接口合并到一个事务下面,进行模块、业务的性能测试
5、仅一次控制器
每个线程用户只执行一次
使用场景:登录下单
需求:对下单接口进行性能测试
两个接口都写在1个线程组中,只需要在登录接口加上“仅一次控制器”控制登录接口
技术难点:
需要在后置处理器提取身份信息给不同的变量名
使用V函数,来获取不同的变量名的值
两个接口写在不同的线程组下面,需要使用 跨线程组 属性 技术
做性能测试,都是先单接口,然后多个接口,用事务控制器合并