实际应用中的查询接口压测

前面有写一篇——jmeter简单的压测案例,只能说是基础理论,跟实际应用还是有一点点差别。下面,从一个简单的实际应用中梳理思路。

测试对象:某个项目的订单号查询接口

压测目标:1分钟并发1000

准备工作:

1、先按照单个接口测试的模式写好要测试的接口,考虑到接口测试的完全覆盖,则包括查询成功和失败,也就是在脚本中一个线程组包含了两个接口的结果,分别是查询结果成功和查询结果失败(查询无记录)。

2、进行冒烟测试(执行这个线程组,确保脚本可正常使用)

3、查询成功的请求参数,需让开发提供,根据开发提供的订单号,比如提供了9个有效的订单号,将这9个订单号复制到csv/txt文件中保存。脚本中的查询成功接口的请求参数“订单号”参数化,且在线程组添加一个csv数据文件设置,设置csv数据文件。

然后将线程组中的线程属性“线程数”设置为9。

 

 查询失败接口的请求参数中的订单号写一个即可。(也就是订单号固定为一个无效的订单号即可)

进行冒烟测试(执行线程组,确保查询成功的脚本可正常使用(确保开发提供的订单号可用)),执行结果为:线程组总共执行9次,查询成功、查询失败各9次。

执行压测:

1、根据压测目标(1分钟并发1000),先执行1分钟并发50试试水。

跑压测脚本有2种方式:一种是GUI模式,即界面模式(在jmeter界面点击运行);一种是CLI模式(Command Line),即命令行模式(通过命令行执行压测脚本)。两者的区别是在生成的性能报告不同,通过命令行执行,所生成的报告可视化一些,而且命令行生成的性能数据更符合实际一点。推荐用CLI模式压测,GUI模式仅用于创建测试计划和调试脚本。

CLI模式压测:
执行脚本:jmeter -n -t mail_checking.jmx -l test.jtl
生成报告:jmeter -g test.jtl -e -o ./output

第一步,执行脚本前,先打开跑脚本的电脑的任务管理器,点击【性能】,查看本机cpu利用率。

第二步,应用服务器的命令行输入:top -d1即可实时查看cpu信息。一般看第一行的%CPU数值。

但由于top -d1拿到的是实时的,看不出脚本执行过程中的应用服务器的cpu占用率,所以需要安装监控工具。由于该项目的服务器是linux环境,我安装的是nmon。因为压测脚本是1分钟并发50,那么nmon需要监控的是1分钟的应用服务器的数据:./nmon -s10 -c60 -f -m /home/wechat/report,但建议监控的分钟数比1分钟大几秒,这样抓取到的数据才完整(因为要先执行nmon命令,再去操作压测脚本的执行,期间存在至少几秒钟的间隔):./nmon -s10 -c63 -f -m /home/wechat/report。

第三步,执行nmon命令后(不需要等nmon命令结束,因为我们要拿的就是跑压测脚本时,这个期间内应用服务器的信息),立即执行压测脚本。

在jmeter安装目录bin文件夹下,输入cmd,命令行输入:jmeter -n -t D:\jmeter\testProject\xxx.jmx -l D:\jmeter\testProject\test.jtl,执行结束会生成2个文件。

第四步,压测脚本执行过程中,观察跑脚本的电脑的任务管理器中cpu利用率的变化和趋势。 

第五步,压测脚本执行结束,命令行输入:jmeter -g D:\jmeter\testProject\test.jtl -e -o D:\jmeter\testProject\output,此时会多一个文件夹,里面有个index.html文件,双击打开,这个就是可视化的jmeter报告了。

(由于之前做的压测已经结束了,不能随意操作应用服务器,所以下面这张图用的是之前做压测的jmeter报告,这个是并发200的,将就看下,大概知道个意思就可以)

第六步,查看服务器的nmon抓取数据的命令(./nmon -s10 -c63 -f -m /home/wechat/report)是否执行完毕,可通过ps -ef|grep nmon查看进程是否结束。如已结束,则将所生成的文件拉取到本地。并使用将该文件转换为localhost_210105_1028.nmon.xlsx。

第七步,分析报告中是否有报错,没报错且应用服务器没超过80%的话,可以继续加并发。

2、增加并发数,直到满足压测目标。压测报告格式如下:

posted @ 2021-01-05 17:41  旅+  阅读(1025)  评论(0编辑  收藏  举报