以jpress新增文章接口为例
目录
1、需求分析
2、场景设计
3、分析结果生成报告
1、需求分析
需求人员一般对系统提出性能要求:某接口10秒达到100并发,响应时间不能超过3秒,10分钟稳定运行100用户,error%不超过0.01%,cpu占用率不能超过80%
分析:
第一点:启动时间要求10s启动100个
第二点:响应时间低于3秒,报错率低于0.01%
第三点:10分钟稳定运行100用户
2、场景设计
第一步:调通单接口
仅一次登录控制器:一次线程活动中只会运行一次,这样可以设置多次循环次数实现并发数(线程数*循环次数)的添加
第二步:设置第一点的需求场景,10秒内启动总并发数的通过20%、50%、80%、100%,分别得到当时的响应时间、报错率、tps、cpu占用率指标
如:20%
配置csv中20条条可添加信息
禁掉除了断言以外的所有非必须配置元件, 使用无图形界面运行方式 执行脚本,由于我这里脚本和参数化文件在我当前执行脚本的路径,所以我没有带路径,如果执行路径和脚本不在一个路径,则需要填写脚本位置,csv则在脚本中的函数助手中进行修改,确保是一个可读取的路径
E:j>jmeter -n -t login.jmx -l m.jtl
执行完,会在指定的路径生成报告,此报告可用聚合报告打开
3、分析结果生成报告
1、本图需要关注的点:系统在空闲状态下执行20并发,处理添加请求响应平均时间为79ms,存在5%的报错率,tps为12.4/s
2、通常我们是需要拿几次的执行结果对比tps,查看报错率情况,分析性能瓶颈等
3、比如说报错率在某一次中超过了预期,则该值时已经存在性能瓶颈;tps达到某一值时,不升反降,则该值存在性能瓶颈;响应时间的值开始缓慢增加后来剧增,则达到性能瓶颈
4、可以通过nmon或者serveragent等插件观察服务器的动态cpu、内存、io、磁盘利用率等辅助分析
5、可以通过top命令实时查看服务器性能表现情况
优化版:
第一步:jmeter有一个Stepping Thread Group,可以实现阶梯式启动加压
入口:添加线程组——jp@gc - Stepping Thread Group
设计脚本:
参数介绍:
This group will start 100 threads:设置线程组启动的线程总数为100个;
First,wait for N seconds:启动第一个线程之前,需要等待N秒;
Then start N threads:设置最开始时启动N个线程;
Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔30秒,在5秒内启动10个线程;
Then hold load for 60 seconds:启动的线程总数达到最大值之后,再持续运行60秒;
Finally,stop 5 threads every 1 seconds:每秒停止5个线程;
第二步:
装好nmon(可参考https://www.cnblogs.com/weizhideweilai/p/11368192.html),最后设置参数进行监控服务器性能指标
链接:https://pan.baidu.com/s/1j6_H9W5SdnoFrsN2nuRmUQ
提取码:njku