1.性能测试脚本完善以及增强
2.jmeter插件安装以及监控使用
3.性能压测场景设置(基准、负载、压力、稳定性)
4. 无界面压测场景详解
一、性能测试脚本完善以及增强
使用控制器的目的是使我们的脚本更加接近真实的场景
1.逻辑控制器:
【事务控制器】:将几个接口放入事务控制器下面可以将他们的数据平均数相加
事务控制器页面
如果Generate parent sample不勾选,聚合报告会显示事务下的接口数据和独立的事务总和
如果Generate parent sample勾选,聚合报告会仅显示设置事务下接口数据总和
【仅一次控制器】:
如果有10个用户,线程组循环次数=10;聚合报告样本只显示10.
【吞吐量控制器】:
Based
Total Executions:(默认)按百分比分配流量
percent Executions:代表总次数
定时器:
【固定定时器】:
【统一随机定时器】:
【高斯随机定时器】:
3.集合点:
jmeter叫做同步定时器,用于实现并发;位置:线程组-添加-定时器-Synehronising Timer【同步定时器】
达到设置数量后才会发送数据
4.简单的压一压:
线程数:虚拟用户数100
Ramp-UP:多久加载完虚拟用户数。20
循环次数:3
每个接口的总请求:100*3=300个
二、安装插件
安装插件工具jmeter-plugins-manager-1.9.jar
插件下载地址:https://jmeter-plugins.org/downloads/all/
https://jmeter-plugins.org/install/Install/
PerfMon Metrics Collector使用原理:
1.需要在服务器安装一个ServerAgent.zip,用于收集服务器的性能参数。
然后通过4444端口输出
2.在PerfMon Metrics Collector组件中通过4444端口区捕获服务器性能参数。
linux上传ServerAgent.zip
在Linux中进入任意一个目录
cd /xxx 到该目录下
rz 上传包命令
mkdir ServerAgent 创建文件夹
unzip ServerAgent.zip -d ServerAgent 解压ServerAgent.zip到指定文件夹ServerAgent中
cd ServerAgent 进入文件夹
ls 后可以看到startAgent.sh这是Linux中的启动
chmod 777 startAgent.sh 给startAgent.sh一个可执行权限
sh startAgent.sh & 启动startAgent.sh 其中&的意思是在后台运行
当启动后出现Binding TCP to 4444说明服务启动成功
systemctl stop firewalld.service 然后关闭防火墙
然后在jmeter中监听器PerfMon Metrics Collector启用
点击Add Row :Host/ip 输入服务器ip,端口port:4444,在Metric to collect中选择你要看cpu还是内存Memory
然后点击启动蓝色按钮,就可以看到检测服务器的监控图了。
监控图的作用主要是:
1.看趋势,找性能拐点
2.写性能测试报告
三、实际性能压测的场景设置
场景:性能测试用例
1.旧系统来自于运维
2.新系统来自于合理的预估
按场景预估和规矩预估;做OA,总用户10000个,测试打开功能做并发,8:30-9:00打开比较多
按照2/8原则:半个小时并发8000个人,8000/1800=4.44约等于5,最多50并发
一般大部分公司很难超过500.5000以上、1万、十万一定要集群
.
服务器(集群)和压力机(集群)
1.但接口基准测试:使用一个用户测试接口5min。
目的:为了在没有任何压力的情况下:查看各项性能指标。
每个项目关注的数据都是不一样的
cpu内存、网络磁盘、tps响应时间,除了这些还有一些如下图所示:
一般就这些
2.单接口负载测试场景:
(测试计划和方案一般会写在一起,上面是计划下面是方案
测试计划:是人员测试的安排
测试方案:怎么测,关注哪些指标,用什么工具去测。)
通过逐渐的对一个接口进行施压直到出现性能拐点。(这个拐点不是指其中的一块,有可能是CPU的、 中间件、数据库、慢查询锁表等,只要有任何一个地方出现拐点,我们就会把他记录下来,最大的并发量就在这里确定了)获得被测接口的最大处理能力以及相关的性能指标
3.混合负载压测场景;
目的是为了验证整个业务的最大的最右性能提现。终端在于模型的设计。模型来自于数据,来自于生产环境的日志,或者产品经理给的
怎么做:用什么
1.递增式线程组,共进式线程组:用的最多的
2.极限线程组:用来做极限测试或者浪涌测试
压测策略,压测场景,压测用力
This group will start:启动多少个线程数
First,wait for:等待多少秒开始压测,一般为0
Then start;一开始有多少个线程数,一般为0
================================
Next add
threads every
using ramp-up
每多少秒启动多少个虚拟用户数,每组数据持续运行多少秒
=================================
Then hold load for 60:当你把虚拟用户数都加满之后负载运行多久
4-24小时:一般是8小时,可以是4、8、12、24小时用来做持续不断的压力测试
=================================
Finaliy stiop
threads every
每一秒停止5个虚拟用户数。
3.压力测试场景:
验证系统的极限。直到有任何一个性能指标超出预期。
4.稳定性测试场景。
在压力测试下持续运行4-24小时。
五、无界面压测
理论--》指标--》压测脚本--》脚本完善和增强--》模拟真是场景--》压测场景--》监控平台-》平静定位和性能调优
当我们走到压测场景的时候,就开始压测,我们不是使用的jmeter压测,我们使用的是无界面压测