创建网络测试计划是使用 JMeter 进行性能测试的重要部分。本文将详细介绍如何创建一个基本的网络测试计划,包括从配置线程组到添加采样器、定时器、断言和监听器的所有步骤。
一、启动 JMeter
确保 JMeter 已经安装并正确配置。启动 JMeter GUI:
- Windows:双击
jmeter.bat
文件(在 JMeter 安装目录的bin
目录下)。 - Linux / macOS:在终端中运行以下命令:
cd /path/to/jmeter/bin ./jmeter.sh
二、创建测试计划
1. 创建测试计划
启动 JMeter 后,默认会创建一个空的测试计划。如果没有,可以手动创建:
- 选择
File
>New
创建一个新的测试计划。
2. 添加线程组
线程组(Thread Group)定义了测试中将使用的虚拟用户数量以及它们的行为:
- 右键点击
Test Plan
,选择Add
>Threads (Users)
>Thread Group
。 - 配置线程组参数:
- Name:例如 “Thread Group 1”。
- Number of Threads (users):虚拟用户数量,设为 10。
- Ramp-Up Period (seconds):启动所有用户所需的时间,设为 10 秒。
- Loop Count:循环次数,设为 1。
3. 添加 HTTP 请求
HTTP 请求是常见的采样器类型,用于测试 Web 应用程序的性能:
- 右键点击
Thread Group
,选择Add
>Sampler
>HTTP Request
。 - 配置 HTTP 请求参数:
- Name:例如 “HTTP Request 1”。
- Server Name or IP:目标服务器的域名或 IP 地址,例如
www.example.com
。 - Port Number:目标服务器的端口号,例如
80
。 - HTTP Request:
- Path:请求的路径,例如
/home
。 - Method:HTTP 方法(GET、POST 等),设为
GET
。
- Path:请求的路径,例如
4. 添加监听器
监听器用于收集和显示测试结果:
- 右键点击
Thread Group
,选择Add
>Listener
>View Results Tree
。 - 右键点击
Thread Group
,选择Add
>Listener
>Summary Report
。
5. 保存测试计划
保存测试计划以便以后使用:
- 选择
File
>Save
,为测试计划命名并保存。
三、运行测试计划
1. 配置和验证
在运行测试计划之前,确保所有配置正确无误:
- 服务器和路径信息正确。
- 线程组参数合理。
2. 运行测试
- 点击工具栏上的绿色“启动”按钮开始测试。
3. 查看结果
测试运行后,可以在监听器中查看结果:
- View Results Tree:查看每个请求的详细信息,包括请求和响应的数据。
- Summary Report:查看汇总的性能数据,包括吞吐量、平均响应时间、错误率等。
四、分析测试结果
分析测试结果以了解系统性能和发现潜在问题:
- 响应时间:检查响应时间是否在预期范围内。
- 吞吐量:查看系统在不同负载下的吞吐量。
- 错误率:检查是否有请求失败,以及失败的原因。
五、优化测试计划
根据初步测试结果,可以对测试计划进行优化:
- 增加用户数量:逐步增加线程组中的用户数量,观察系统的性能变化。
- 调整请求参数:模拟不同的用户行为和请求模式。
- 增加其他采样器:例如 JDBC 请求、FTP 请求等,测试不同类型的操作。
示例测试计划
下面是一个完整的示例,创建一个简单的网络测试计划,用于测试某网站首页的响应时间:
-
创建测试计划:打开 JMeter,创建新的测试计划。
-
添加线程组:
- 右键点击
Test Plan
,选择Add
>Threads (Users)
>Thread Group
。 - 设置
Number of Threads (users)
为10
。 - 设置
Ramp-Up Period (seconds)
为10
。 - 设置
Loop Count
为1
。
- 右键点击
-
添加 HTTP 请求:
- 右键点击
Thread Group
,选择Add
>Sampler
>HTTP Request
。 - 设置
Server Name or IP
为www.example.com
。 - 设置
Path
为/home
。 - 设置
Method
为GET
。
- 右键点击
-
添加监听器:
- 右键点击
Thread Group
,选择Add
>Listener
>View Results Tree
。 - 右键点击
Thread Group
,选择Add
>Listener
>Summary Report
。
- 右键点击
-
保存测试计划:选择
File
>Save
,命名为SimpleNetworkTestPlan.jmx
。 -
运行测试:点击工具栏上的绿色“启动”按钮开始测试。
-
查看结果:
- 在
View Results Tree
中查看每个请求的详细信息。 - 在
Summary Report
中查看汇总的性能数据。
- 在
通过这些步骤,你可以创建并运行一个基本的网络测试计划。根据需要,你可以进一步优化和扩展测试计划,以满足更复杂的测试需求。
进阶:添加定时器、断言和更多请求
为了使测试计划更加全面,可以添加定时器、断言和更多的请求。
添加定时器
定时器用于在请求之间添加延迟:
- 右键点击
Thread Group
,选择Add
>Timer
>Constant Timer
。 - 设置
Delay (in milliseconds)
,例如2000
(表示 2 秒的延迟)。
添加断言
断言用于验证响应数据是否符合预期:
- 右键点击
HTTP Request
,选择Add
>Assertion
>Response Assertion
。 - 配置断言参数:
- Field to Test:选择
Text Response
。 - Pattern Matching Rules:选择
Contains
。 - Patterns to Test:输入
Welcome
。
- Field to Test:选择
添加更多请求
为了模拟更复杂的用户行为,可以添加更多的 HTTP 请求:
- 右键点击
Thread Group
,选择Add
>Sampler
>HTTP Request
。 - 配置新的 HTTP 请求参数,例如:
- Name:例如 “HTTP Request 2”。
- Path:例如
/login
。 - Method:选择
POST
,并添加必要的请求参数。
最终示例测试计划
Test Plan
Thread Group
Number of Threads: 10
Ramp-Up Period: 10
Loop Count: 1
HTTP Request Defaults
Server Name or IP: www.example.com
Port Number: 80
CSV Data Set Config
Filename: users.csv
Variable Names: username,password
User Defined Variables
sessionId: ${__UUID()}
HTTP Request
Name: Get Home Page
Path: /home
Method: GET
Constant Timer
Delay: 2000
Response Assertion
Field to Test: Text Response
Pattern Matching Rules: Contains
Patterns to Test: "Welcome"
Regular Expression Extractor
Reference Name: sessionId
Regular Expression: "sessionId=(\d+)"
Template: $1$
Match No.: 1
HTTP Request
Name: Login
Path: /login
Method: POST
Parameters: username=${username}, password=${password}
View Results Tree
Summary Report
这个示例测试计划通过 JMeter 模拟了用户访问网站首页和登录操作,并在请求之间添加了定时器和断言。这样可以更全面地测试 Web 应用程序的性能和响应。