测试脚本设置完成后,需进行测试场景设置。本次测试分为2组4个场景。

本次测试过程所有场景的计时器全部启用,模拟用户的真实请求发送请求,测试工程师可在实际测试时测试启用计时器与禁用计时器两种情况。

1. 用户登陆并发基准场景设置

本次并发测试目的在于验证ECShop平台能否支持100个并发同时登陆系统,无须考虑持续时间。首先,设置场景执行计划。

(1) 点击“Thread Group”(此处改名为“用户登陆业务”),出现图1。

Jmeter性能测试系列
图1用户登陆线程组设置

并发测试,每个线程只需执行一次,因此,图1中,仅需将“线程数”设置为100,其他默认即可。

(2) 线程组设置完成后,需设置服务器资源监控信息。

Jmeter利用Plugins Manager管理所有插件,测试工程师可利用该管理器管理测试过程中可能需要的插件,如TPS监控、系统资源监控等。

以服务器性能监控为例,Plugins manager中添加“PerfMon (Servers Performance Monitoring)”,即可在Jmeter远程监控服务器系统资源。

(3) 下载“ServerAgent”,上传至Linux服务器,启动“startAgent.sh”,“ServerAgent”默认开启4444代理端口,如图2所示。

Jmeter性能测试系列
图2开启ServerAgent远程代理

(4) 选择“Step1”,右键,“添加”-“监听器”-“jp@gc - PerfMon Metrics Collector”,出现图3。

Jmeter性能测试系列
图3添加服务器监控窗口

(5) 点击“Add Row”,添加需监控的对象,如CPU、内存等,如图4所示。

Jmeter性能测试系列
图4添加服务器监控对象

添加完成后,需执行计划才能获取数据。

(6) 类似方法,添加“Hits per Second”、“Transactions per Second”等需要监控的服务器响应指标。如图5、图6所示。

Jmeter性能测试系列
图5添加“Hits per Second”监控图
Jmeter性能测试系列
图 6添加“Transactions per Second”监控图

(7) 对于“Hits per Second”、“Transactions per Second”调整数据获取频率,点击图5、图6的“Settings”按钮,如图7所示,将“1000”改为“3000”。测试持续时间长则可适当延长该数值。

Jmeter性能测试系列
图7设置数据获取频率

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

本次测试采用Spotlight监控Mysql性能表现,安装好Spotlight后,添加数据库连接即可。接下来介绍利用Spotlight监控Mysql数据库的步骤。

(1) 启动Spotlight后,点击创建“Connect”按钮,如8所示。

Jmeter性能测试系列
图8数据库监控连接列表

(2) 双击“Add new connection”,出现图9。

Jmeter性能测试系列
图9创建服务器mysql监控连接

“Connection name”:设置连接名称,任意起名,如“ECShopDB”

“Host”:设置服务器ip地址,如“192.168.0.110”

“Username”:Mysql服务器用户名,如“root”

“Password”:Mysql服务器密码,根据实际密码输入,此处为“123456”

“Port”:默认设置即可

“Database”:设置为待监控的数据库名称,如“ecshop”

这里不设置OS监控,因为Jmeter已经对服务器进行了监控,所有设置完成后,点击“Connect”按钮,即可完成Spotlight对服务器Mysql的监控设置,设置完成后监控图如图10所示。

Jmeter性能测试系列
图10 Spotlight监控服务器Mysql资源使用

上述过程是用户登陆业务并发基准测试场景设置过程。

2. 用户登陆业务量基准场景设置

根据前面测试场景分析,业务量测试需设置78个线程数,同时需设置测试执行的时间段。线程数设置较为简单,持续时间该如何处理呢?

(1) 勾选图1中的“调度器”,如图11所示。

Jmeter性能测试系列
图11线程组调度器设置

“持续时间”

场景执行的持续时间,如果设置了该时间,“结束时间”将不生效。

“启动延迟”

在“启动时间”开始后的多长时间内执行。通常不做设置。

“启动时间”

场景执行开始时间,利用该设置可设置定时无人值守测试。

“结束时间”

设置场景执行结束时间,“结束时间”-“启动时间”即为场景持续时间。

(2) 本次登陆业务量测试,持续时间需2小时,则设置信息如图12所示。

Jmeter性能测试系列
图12用户登陆2小时场调度器设置

(3) 以上设置一定要勾选“循环次数”为“永远”,“调度器”才能生效。线程组线程数及调度时间设置完成后的界面如图13所示。

Jmeter性能测试系列
图13用户登陆线程组设置完成界面

因本次测试脚本由BadBoy录制生成,而BadBoy录制的脚本与Jmeter录制的脚本在循环设置方面存在差异,因此在完成线程组相关设置后,需对“Step1”进行设置。

(4) “Step1”设置较为简单,与线程组一样,将“循环次数”设为“永远”即可,如图14所示。

Jmeter性能测试系列
图14“Step1”循环控制

服务器监控则与“用户登陆并发基准场景设置”中的监控设置方式相同。

3. 随机商品购买并发基准场景设置

根据需求,随机商品购买测试并发数为100,参考“用户登陆基准场景设置”,设置线程数为100,其他类似。

4. 随机商品购买业务量基准场景设置

将线程组设置为100,其他类似。

相关设置完成后,即可进行场景执行,需注意的是,所有的监控应先于场景执行操作开启,否则可能会导致数据监控遗漏。