文章目录
前言
压力测试是指测试一个软件最多可以支持多少个用户同时进行试验,发现软件性能的瓶颈。
进行压力测试在知道预期值是多少时,考虑是一次达到还是按时间增加并发以及上限值。
了解上次测试的并发量要看这次的并发量有没有超过或者降低。
无预期值就参考在想用户,2:8原则,用在线用户的20%作为参考去测试
关注的参数
响应时间
没有具体要求的时候就采取1 3 5/2 5 8 原则(1秒最好,1-3秒可以接受,超过5秒不能接受/2秒最好,2-5秒可以接受,超过8秒不能接受)
根据具体情况可以加以调整
tps
tps是指每秒处理的事务数目,tps越高越好,根据tps的值去修改并发数/脚本,如果增加并发数tps降低了就不能再增加并发数了
出错率
在进行并发测试的时候,并发量达到了服务器的上限就会出现错误,一般90%的正确率就可以,银行业务需要100%的正确率或者有着自己的容错机制
CPU、内存、队列、磁盘的使用情况
CPU占有率不要超过80%,内存要有20%空余,队列要小于1,磁盘读写操作频率不要过高过快,这些可能会造成响应时间变慢。
设计并发场景
设置并发量的相关测试就是负载测试相关设置,确定线程数后设置持续时间就是稳定性测试的相关设置
查看压力测试结果
利用聚合报告查看结果,在监听器里面添加
结果分析
用断言对结果进行简单的分析
响应断言:通常是用于对每一个请求进行额外验证的工具(可以检查请求是否真的响应成功)
响应时间断言:规定请求的响应时间不能超过多少毫秒
文件大小断言:文件大小不能超过多少bytes,暂时可以不用考虑,除非性能有要求说必须是某个size范围之内的值。
在每个请求中添加响应断言和断言持续时间元件,在断言持续时间元件设置响应时间
可以把断言结果写入文件,可以用Excel表格打开就可以查找出失败(false)的请求可以查看失败的原因。
利用聚合报告也可以,聚合报告也可以将结果写入文件,也可以查看失败请求和失败原因。
同时它还可以导出表格数据,将聚合报告表格里面的测试数据存储下来便于查看。
非GUI模式的jmeter命令
GUI模式就是界面模式,非GUI模式就是命令行模式,在进行压力测试的时候使用非GUI模式,GUI模式只是用于脚本的生成和调试
命令行进行测试
调试好脚本设置好并发场景后开始测试
先进入jmeter的执行目录下再输入控制
在命令行中执行测试脚本
也可以吧结果写入文件,文件类型为jtl或者csv这样可以通过jmeter聚合报告浏览文件查看结果
在自己设置的目录里面就会看到result.csv文件了,直接打开文件可能会乱码,我们先用记事本打开这个文件,再另存为,这时选择编码为ANSI,在直接打开文件就没有乱码了
但是改了编码后就无法导入到jmeter里面浏览了会出现error loading results file—see log file
不改编码格式就可以导入,所以建议生成结果文件后复制创建一个副本,一个用户jmeter导入查看,一个改编码后Excel表格查看
命令行生成HTML报告
可以在jmeter测试结束时自动生成本次测试的HTML图形化报告
也可以使用一个已有的结果文件来生成该次结果的HTML图形化报告
在执行的时候保存,-e表示在脚本运行结束后生成HTML报告,-o表示保存HTML的路径,该文件夹必须为空或者不存在。
再指定的文件夹下就会出现一个result目录,目录里面有保存的HTML格式的报告
使用已有的CSV日志文件生成报告
jmeter -g D:\testtool\apache-jmeter-5.4.1\bin\jmeter.log -o D:\testtool\document\result
查看HTML报告
APDEX (Application Performance Index)是指性能指数,用户对应用性能的满意程度,0表示没有满意程度,1表示所有的用户都满意
聚合报告
错误报告
响应时间曲线
吞吐时间曲线
tps曲线