目录结构
一、用户登录并发基准场景设置
1.JMeter安装性能监控所需的插件
2.下载ServerAgent,上传至服务器
3.设置场景执行计划, 添加性能监听器
1)Perfmon(Servers Performance Monitoring)
2)Hits per Second
3)Transactions per Second
4.下载并安装Spotlight,监控Mysql数据库服务器的性能
二、用户登录业务量基准场景设置
1.配置Thread Group中的线程数 & 调度器
2.配置Step 1中Loop Controller的Loop Count
一、用户登录并发基准场景设置
对于并发场景,本次测试目的在于验证ECShop平台能否支持100个用户并发同时登录系统,无须考虑持续时间。
登录并发场景的脚本,命名为:ecs_Login_Concurrency.jmx
1.JMeter安装性能监控所需的插件
利用JMeter Plugins Manager管理JMeter中所需各种插件,比如:服务器性能监控插件,PerfMon(Servers Performance Monitoring),可在JMeter中监控远程服务器的系统资源变化情况。
操作路径:Options-->Plugins Manager-->Available Plugins
勾选所需的插件,点击"Apply Changes and Restart JMeter",正式开始安装勾选的插件,安装完成后会自动重启JMeter
本次利用JMeter Plugins Manager安装如下3个插件:
- 3 Basic Graphs
- 5 Additional Graphs
- Perfmon(Servers Performance Monitoring)
以上安装完成后重启JMeter,即可在Listener中查看到具体的应用插件,如下:
PS:插件安装的路径为...\apache-jmeter-4.0\lib\ext
2.下载ServerAgent,上传至服务器
传送门:https://github.com/undera/perfmon-agent/releases/
直接下载 ServerAgent-2.2.3
下载ServerAgent,上传至服务器(Linux/Windows),Linux服务器启动startAgent.sh
,Windows服务器启动startAgent.bat
ServerAgent默认开启4444代理端口,Windows中双击startAgent.bat
启动ServerAgent,如下:
3.设置场景执行计划, 添加性能监听器
并发测试中每个线程只需执行1次,只需将Thread Group中设置"Number of Threads"为100,其他为默认即可
线程组设置完成后,需要对服务器资源监控的信息进行配置
1)Perfmon(Servers Performance Monitoring)
Step1-->Add-->Listener-->jp@gc - Perfmon(Servers Performance Monitoring)
通过Add Row新增4项监控:CPU、Memory、Disks I/O、Network I/O
2)Hits per Second
Step1-->Add-->Listener-->jp@gc - Hits per Second
对于Hits per Second,可根据实际需要来调整对应响应数据获取的频率,在Settings中设置Group timeline values for "x" ms
(若测试持续时间较长,则可适当延长x的数值,但不绝对)
3)Transactions per Second
Step1-->Add-->Listener-->jp@gc - Transactions per Second
4.下载并安装Spotlight,监控Mysql数据库服务器的性能
因JMeter默认并没有提供Mysql数据的监控,因此,本次性能测试需采用其他性能监控工具监控Mysql数据,便于获取整个场景执行过程中服务器Mysql的性能表现。
具体下载和安装过程,可参看==> 数据库性能监控工具Spotlight on MySQL的安装
本次测试采用Spotlight监控Mysql的性能表现,安装Spotlight完成后,新建数据库连接即可。
因JMeter已经对OS的服务器进行了监控,Spotlight则不需要设置对OS的监控。确保设置信息无误,然后点击"Connect"按钮,即可完成Spotlight对Mysql数据库服务器的连接和监控设置。设置完成后监控图,如下:
二、用户登录业务量基准场景设置
登录业务量场景的脚本,命名为:ecs_Login_Business.jmx
1.配置Thread Group中的线程数 & 调度器
根据前文 [JPT_03]性能测试-测试模型构建 & 用例设计 对测试场景分析
,业务量测试需设置97个线程数,同时需设置测试执行的时间段
对于JMeter 4.x版本,Thread Group配置界面勾选Scheduler(调度器)后,已经不会出现单独的Start Time、End Time配置项,只有以下2项:
配置项 | 含义 |
---|---|
Duration | 执行测试所持续的时间, 单位: s (相当于控制结束时间) |
Startup delay | 延迟执行启动的时间, 单位: s (相当于控制开始时间: 手工运行后, 等待所设置的延迟时间后开始执行测试) |
本次登录业务量测试,持续时间2h,即7200s
然后还需要设置Loop Count: 勾选"Forever"(永远),使得Scheduler生效, 直到手工停止测试or测试开始后达到所设置的持续时间之后才会结束测试
2.配置Step 1中Loop Controller的Loop Count
因本次测试脚本由BadBoy录制生成,而BadBoy录制的脚本与JMeter录制的脚本在循环设置方面存在差异,因此在完成Thread Group相关设置后,还需要对"Step 1"进行设置
"Step 1"设置, Loop Count: 勾选"Forever"(永远) 即可,如下: