用jmeter的小伙伴们,随着熟练度慢慢的都开始做压测!对单接口,或者对某个业务场景!这里记录一下自己做压测时需要的一些准备和过程!
首先肯定是把脚本准备好,单接口的直接创建一个http sampler,多接口组成的业务场景,把接口放到用jmeter-事务控制器中!
1.准备测试脚本:
① 单接口:创建一个http sampler;场景:jmeter-事务控制器
② 准备测试数据,最好用csv文件,便于测试数据的保存(最好放在jmeter文件下)
③ 断言、和添加相应的监控插件,添加--监听器--jp@gc
例如:
Transactions per Second:监控吞吐量 TPS
Hits per Second:每秒点击数
Response Times Over Time:响应时间图形监控
聚合报告:
Samples:发出请求数量。如第三行记录,模拟20个用户,循环100次,所以显示了2000
Average:平均响应时间(单位:)。默认是单个Request的平均响应时间,当使用了Transaction Controller
(事务控制器)时,也可以以Transaction为单位显示平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%用户的响应时间
95%Line:95%用户的响应时间
99%Line:99%用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量。默认情况下标示每秒完成的请求数(具体单位如下图)
KB/sec:每秒从服务器端接收到的数据量。
④ 添加日志写入路径:把③添加的功能的日志进行保存,因为我们等会再Linux系统上运行(因为我用的机器配置不好,支持不了高并发QAQ)
1. 在测试计划中添加一个相对路径,这个路径是已当前脚本所在位置进行的相对路径(我的.jmx脚本在bin目录下),然后我的
日志的文件要放的位置就是:../../ bin的上一级的上一级的csvdata/jmeter/testdata下
2.在添加的插件中用测试计划的相对路径,加上日志文件名
2.设置并发数量:根据实际要求设置并发数量(具体怎么去估并发数就不说了)
3.准备执行压测基本的机器,我是用公司的Linux系统的服务器上压的,所以先连接远程服务器,准备执行环境
执行环境准备:
1. 使用客户端连接远程服务器,我使用的是Xshell
2. 安装jdk,配置java环境变量
3. 用xshell的xftp上传jmeter和对应的csv文件
4. 执行脚本,查看对应监控
一个小坑:记住给要执行的文件添加权限,jmeter、jmeter.sh
1. 执行脚本,先进入bin文件下,执行jmx脚本:./jmeter.sh -n -t xxx.jmx
2.观看xshell执行情况,执行接口数、执行时间、平均响应时间、错误率(如果报错可以及时优化脚本和数据)
3.查看公司提供的服务器监控,查看对应的cpu、内存、iops、数据库等信息,例如:阿里云的监控
5. 停止运行,分析数据
找到执行脚本生成的log,下载到本地中!用jmeter去打开对应的日志文件
附加:脚本后台运行(做全链路稳定性测试时,如果不后台运行,断开连接时会自动停止运行jmeter,xshell执行jmeter显示的信息在jmeter.log*文件中)
后台运行命令:nohup ./jmeter.sh -n -t usersignup.jmx &
运行后可ps -ef
进行查看,或者用xftp看日志文件是否增加,这个时候最好看一下实际执行情况,看有没有报错!
查看执行情况命令:tail -f jmeter.log
关闭实时刷新类窗口的命令:键盘 Ctrl+C