性能测试
负载测试,获得了最大可接受的并发用户数
普通线程组
- 线程数:模拟并发用户数(
你要模拟多少人的并发用户数,这个线程数就需要设置多少
) - ramp-up:自动的时间(
启动上面的线程数的时间
)- 只是代表,在这个时间点结束的时候,并发用户数会产生。 但是产生的过程不确定(也就是说网上看到
加速度
这个说法不准确)
- 只是代表,在这个时间点结束的时候,并发用户数会产生。 但是产生的过程不确定(也就是说网上看到
- 循环: 至少要有1次
- 勾选永远 -----一直执行下去, 直到点击停止
- 与 调度器 一起使用
- 循环勾选 永远 + 调度器 设置执行时间 =====这二者 缺一不可
- 勾选永远 -----一直执行下去, 直到点击停止
-
ramp-up时间 < 调度器中 持续时间
- 总的执行时间 = 调度器中 持续运行时间
-
ramp-up时间 > 调度器中持续运行时间
- 调度器持续运行时间长度内, 我们并发用户数 会累加, 而 ramp-up时间 - 持续运行时间 这一段时间内, 产生的并发用户数,执行完一次所有取样器的请求,就停止。
- 真正运行时间长度, 稍微小于 ramp-up时间
-
ramp-up时间设置(经验)
- 小于100个线程数,ramp-up时间 1~2秒
- 小几百的线程数,ramp-up时间3-5秒钟
- 大几百到几千线程数,ramp-up时间 5-10秒就可以
-
性能测试持续运行时间一般设置多少?
- 我们在调试,试运行的时候,几十秒
- 真正做性能测试,想要得到性能指标,持续运行时间长度,
一般会设置为几分钟到几十分钟。
- 如果你想对测试结果做性能分析,那么,这个时间 一般 会是几分钟到几十分钟
-
性能测试时
- 图像界面模式,我们才会去添加一些监听器,在cli无图像界面模式时,我们不添加(不启用任何监听器)
- 添加的这些图像界面,它的原始数据,都是同一份。只是展示界面效果不一样而已。
- 查看结果树:
- 根据收到响应的先后顺序来显示
- 查看结果树中,显示的数量是有限的。
view.results.tree.max_results=500
- 查看结果树的 大小
document.max_size=0
这个地方的参数去掉了大小限制- 所以, 在你的响应量累加起来很大时,你查看某一个响应结果,都可能导致jmeter内存不足而无响应。
- jmeter的图像界面中,有一个 所有数据写入文件功能
- 可以把结果写入一个jtl文件-----这个文件 与cli命令中 -l参数生成jtl文件 相同的。
- 这个jtl文件,可以在任何一个监听器中被打开,打开只能看概要信息,不能看到详细响应体。
- 如果不是生成jtl文件,而是生成一个xml文件,打开是可以看到想要的信息。
- 但是,这个xml不能用 cli命令,生成 html报告。
聚合报告
-
注意:
- 1、如果并发用户数是变化, 不能看聚合报告。
- 2、如果性能测试中,有网络瓶颈,也不能看聚合报告。
-
聚合报告
-
样本: 总请求数量( 不知道多少人,执行了多长时间、请求的频率是多少)
- 样本数,是完全不知道并发数
-
响应时间 单位 (ms毫秒)
- 平均值: 所有样本的时间之和求出来的平均值
- 中位数: 所有样本的时间之和求出来的平均值
- 90% 95% 99%: 在所有的样本的时间中,有90%、95%、99%的样本时间小于等于 90%、95%、99%、数值的
- 最小值
- 最大值
- 异常:
- 失败的样本占比 --------行业标准 3个9, 要求 失败率下雨0.1%
- 吞吐量:
- 在没有网络瓶颈时候, 我们把这个数值 == tps的数值
- 这个吞吐量 与 并发用户数 正相关关系
- 吞吐率: KB/S
- 接收
- 发送
- 带宽 1Mbps = 1024Kbps = 1024/8 KBps = 128KB/s
- 拿吞吐率中,任何一个比较大的数值 与 128比较--------得到真正使用的带宽
- 真正使用的带宽 与 网络的实际理论带宽 比较 =======网络带宽是否成为瓶颈
- 每一行:
- 是一种事物(不是一个取样器)
-
CLI生成html报告
-
APDEX 用户满意度指数
-
容忍值 默认 是500ms,
-
可接受的极限 默认值 1500ms
-
apdex = [(所有响应时间小于容忍时间的样本数量) 加 0.5 (响应时间大于容忍时间小于可接受的极限时间的数量) ] 除以 总样本数
-
所以,apdex值,最大值 是 1,越接近1,说明 越多响应时间是小于 容忍值的。
- jmeter的报告中的图表,默认是1分钟(60000) 才取1个点
- reportgenerator.properties这个文件中
jmeter.reportgenerator.overall_granularity=60000
- reportgenerator.properties这个文件中