[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)

目录结构

一、用户登录并发基准场景设置
    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

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第1张图片

本次利用JMeter Plugins Manager安装如下3个插件:

  • 3 Basic Graphs
  • 5 Additional Graphs
  • Perfmon(Servers Performance Monitoring)

以上安装完成后重启JMeter,即可在Listener中查看到具体的应用插件,如下:

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第2张图片

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

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第3张图片

ServerAgent默认开启4444代理端口,Windows中双击startAgent.bat启动ServerAgent,如下:


3.设置场景执行计划, 添加性能监听器

并发测试中每个线程只需执行1次,只需将Thread Group中设置"Number of Threads"为100,其他为默认即可

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第4张图片

线程组设置完成后,需要对服务器资源监控的信息进行配置

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

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第5张图片
2)Hits per Second

Step1-->Add-->Listener-->jp@gc - Hits per Second
对于Hits per Second,可根据实际需要来调整对应响应数据获取的频率,在Settings中设置Group timeline values for "x" ms
(若测试持续时间较长,则可适当延长x的数值,但不绝对)

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第6张图片
3)Transactions per Second

Step1-->Add-->Listener-->jp@gc - Transactions per Second

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第7张图片


4.下载并安装Spotlight,监控Mysql数据库服务器的性能

因JMeter默认并没有提供Mysql数据的监控,因此,本次性能测试需采用其他性能监控工具监控Mysql数据,便于获取整个场景执行过程中服务器Mysql的性能表现。

具体下载和安装过程,可参看==> 数据库性能监控工具Spotlight on MySQL的安装

本次测试采用Spotlight监控Mysql的性能表现,安装Spotlight完成后,新建数据库连接即可。

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第8张图片
[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第9张图片

因JMeter已经对OS的服务器进行了监控,Spotlight则不需要设置对OS的监控。确保设置信息无误,然后点击"Connect"按钮,即可完成Spotlight对Mysql数据库服务器的连接和监控设置。设置完成后监控图,如下:

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第10张图片
[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第11张图片


二、用户登录业务量基准场景设置

登录业务量场景的脚本,命名为: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
(相当于控制开始时间: 手工运行后, 等待所设置的延迟时间后开始执行测试)
[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第12张图片

本次登录业务量测试,持续时间2h,即7200s

然后还需要设置Loop Count: 勾选"Forever"(永远),使得Scheduler生效, 直到手工停止测试or测试开始后达到所设置的持续时间之后才会结束测试

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第13张图片


2.配置Step 1中Loop Controller的Loop Count

因本次测试脚本由BadBoy录制生成,而BadBoy录制的脚本与JMeter录制的脚本在循环设置方面存在差异,因此在完成Thread Group相关设置后,还需要对"Step 1"进行设置
"Step 1"设置, Loop Count: 勾选"Forever"(永远) 即可,如下:

[PT_06] 性能测试-场景设计与实现(登录&随机购买业务)_第14张图片

你可能感兴趣的:([PT_06] 性能测试-场景设计与实现(登录&随机购买业务))