一、回顾
二、事务控制器
三、聚合报告/汇总报告
1.没有网络瓶颈。
2.并发用户数不变。
jmeter脚本性能转换:逻辑控制器。
用jmeter写脚本,可以去做接口测试、自动化测试、性能测试。
性能测试脚本,可以直接用于接口测试、自动化测试。
但是,接口测试、自动化测试脚本,不能直接用于性能测试,需要进行性能转换,才能用于性能测试。
性能测试,要尽可能得降低jmeter工具自身对资源的消耗。
接口测试、自动化测试脚本,一定会添加断言,断言的目的是判断是否有bug。
断言,这个元件在执行时,消耗来自jmeter工具启动后所分配的资源(自己电脑的cpu+内存相关的一些资源)。
这个是本机消耗的时间和资源,不是服务器消耗的时间和资源。
断言所消耗的时间和资源被算到服务器消耗的时间和资源里面去了。所以,性能测试,不要加断言。
接口测试、自动化测试:用Beanshell
元件,写脚本时,只考虑功能能实现即可,不会过多去考虑元件使用的时间、资源消耗。
性能测试:Beanshell
所有元件,能不用则不用。
如果,一定要写java代码来处理的,可以采用JSR223
、${__jexl3(,)}
函数、${__groovy(,)}
函数替换掉Beanshell
所有元件。
元件的选择:
DDT
JSR223
运行模式:GUI 图形界面模式,这个模式只用于编辑调试脚本。
真正的性能测试用CLI
模式(无图形界面模式),为了减少资源的消耗,从而向服务器发起更多的请求。
if条件控制器:
默认勾选:Interpret condition as variable
。
勾选了,要使用jexl3
和groovy
函数,得出结果为true
、false
。
不勾选:Interpret condition as variable
。
不勾选,条件框中运算过程(表达式)的结果为true
、false
。
在jmeter中,默认一个取样器执行一次请求,就是一个事务。
事务控制器:控制其子集的取样器(n个),合并为一个事务。
TPS
:是服务器每秒处理的事务数。
在事务控制器下,挂载多个取样器,想要把多个取样器合并为1个事务,必须勾选Generate parent sample
。
Generate parent sample
?性能测试,要先做单接口的性能测试,然后再做多接口的性能测试。
在做多接口合并的时候,需要勾选。
在性能测试中,需要先用单个取样器,做出某个接口的性能测试指标。
然后再出多个接口的性能指标,再使用事务控制器,勾选Generate parent sample
,做出业务的性能指标。
把所有的业务都做出来,再合并,做出整个系统的性能指标。
需要先梳理出这个业务所有的接口,然后对这个业务所有的接口进行性能测试,得到性能指标。
然后,再使用事务控制器,合并取样器,最终才得到业务的性能指标。
真正做性能测试时,所有的监听器,都要禁用。(监听器拿到数据展示出来是需要时间的)
因为,在很多时候,我们在看聚合报告时,会把吞吐量的值等价为TPS的值(没有网络瓶颈的时候才可以这样理解)。
聚合报告最后两列:是吞吐率。
吞吐率与我们的带宽是有关系。
通过吞吐率,是可以看出是否存在网络带宽问题。
20Mb
100Mb
1Mb = 1 x 1024kb = 1024kb/8 = 128KB/s
吞吐率的值越接近128,可能就有网络瓶颈了。
企业的带宽和民用的带宽是不一样的。
民用的带宽:上行(入门理解为发送)比较窄,下行(入门理解为接收)比较宽。
企业级的带宽:上行(入门理解为发送)比较宽,下行(入门理解为接收)比较窄。
企业服务器,一般电商类的产品,也就几m带宽。
负载测试时,并发用户数会随着时间变化而变化(每秒钟发20个人,30个人。1秒钟发的请求量都不一样),就不能看聚合报告。
每一行:都是一种事务。
样本:在刚才的过程中,所有的并发用户数,在一段时间中的总请求量。
单独看样本,是无法知道并发用户数、执行时长。
10r x 60s x pl(频率)= 351
pl(频率)=0.585
每一个人的吞吐量是0.585。因为没有网络瓶颈,tps
值就是0.585。
平均值...........最大值:这些都是响应时间。单位是毫秒ms。
90%
:所有的样本中,有90%的样本时间是小于等于这个时间的。
链接:https://pan.baidu.com/s/10rIeYWWfcdPmyNPqJG3-pw?pwd=1234 提取码:1234
文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章为清菡所编写,如有转载,请标明出处!
欢迎关注 “清菡软件测试”,进群加v:qhtester,备注:学校(公司名)+姓名(昵称),否则不予通过,感谢点赞与分享!