课堂笔记
性能瓶颈
做压测需要准备什么
1.压测脚本
压测思路是什么
由小到大,逐渐添加压力
jmeter可视化执行
优点:简单,可以看动态过程
缺点:报告需要手工导出
命令行执行
优点:直接生成最终报告
缺点:有命令,复杂
jmeter -n -t d:\softwaredate\jmeterdata\test.jmx -l result.jtl -e -o d:\softwaredate\jmeterdata\report
PS:注意,result.jtl每次要删除,位置在jemter.bat同目录下
课堂总结:
A.压力测试
1.压测的思路:
- 从小往大压测
- 每次截图备份结果
- 最后对比分析
-
找出压测承受的点
- 性能测试:资源充足,请求越多,吞吐量越大
- 负载测试:负载达到最佳,请求数增加,响应时间降低,总的量趋稳
- 压力测试:超出系统负载,开始部分报错,响应时间大幅降低
- 之后 :系统崩溃,无法处理业务
2.做压测之前的准备__环境准备
测试工程师需要准备压测脚本
-
找运维看监控数据
找研发根据压测数据和监控数据分析性能瓶颈
3.设置jmeter的线程组的线程数、循环次数和调度器
4.运行后,查看jp@gc - Hits per Second每秒点击数和jp@gc - Transactions per Second每秒响应的事务数,每次结果需截图
5.导出压测数据-聚合报告、tps每秒响应数
6.根据压测数据和监控数据找研发一起分析性能瓶颈
如何分析当前测试处于哪个阶段?
1.看请求响应时间、最大值、最小值、平均值比较接近,吞吐量TPS未达到最大值,说明处于性能阶段,说明当前线程数可以再添加
2.响应时间、最大值、最小值、平均值波动差距逐渐增大,吞吐量TPS开始稳定,说明已处于负载阶段,说明可以尝试降低线程、请求数
3.响应时间、最大值、最小值、平均值波动差距较大,同时请求结果开始出现失败时,吞吐量TPS下降,说明已经处于压力测试阶段,需要调整线程数和请求数
如何判断当前TPS吞吐量达到最优?
通过线程数加大减小多次对比,增大请求持续时间
B.jmeter--CSV 数据文件设置
1.从CSV用jmeter导入数据到数据库
2.流程:
-
新建CSV格式的数据表,使用Notepad++
Alt+鼠标左键是增加一列相同的数据
-
用,分隔每列数据
- 保存CSV文件到指定位置
- 用fiddle抓包,添加http请求数据
-
在jmeter里设置CSV 数据文件设置(注意需禁用用户自定义变量)
-
添加循环控制器,设置添加数据的次数
-
添加http请求的body的传参
-
运行,察看结果树,察看请求和响应数据