Jmeter中的测试片段和非测试原件
1)测试片段
1--测试片段
功能特点
- 重用性:将常用的测试元素组合成一个测试片段,便于在多个线程组中重用。
- 模块化:提高测试计划的模块化程度,使测试计划更易于管理和维护。
- 灵活性:可以通过模块控制器灵活地引用和控制测试片段的执行。
配置步骤
-
创建测试片段
- 右键点击测试计划 -> 添加 -> 测试片段 -> 输入测试片段名称(例如“公共登录流程”)。
-
添加测试元素
- 在测试片段中添加所需的测试元素,如取样器、前置处理器、后置处理器、断言等。
-
引用测试片段
- 在需要使用测试片段的线程组中,右键点击线程组 -> 添加 -> 采样器 -> 模块控制器。
- 配置模块控制器:
- 名称:给模块控制器一个有意义的名称。
- 测试片段:选择要引用的测试片段。
参数说明
- 测试片段名称:给测试片段一个有意义的名称。
- 模块控制器名称:给模块控制器一个有意义的名称。
- 测试片段选择:选择要引用的测试片段。
示例配置
假设我们需要测试一个Web应用,并且有一个常见的登录流程需要在多个线程组中重用。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
创建测试片段:
- 右键点击测试计划 -> 添加 -> 测试片段 -> 输入测试片段名称(例如“公共登录流程”)。
-
添加登录请求:
- 在测试片段中右键点击 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加断言:
- 在登录请求下右键点击 -> 添加 -> 断言 -> 响应断言。
- 配置响应断言:
- 名称:验证登录成功
- 模式匹配规则:包含
- 模式:登录成功
-
创建线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟1”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
引用测试片段:
- 在线程组中右键点击 -> 添加 -> 采样器 -> 模块控制器。
- 配置模块控制器:
- 名称:引用公共登录流程
- 测试片段:选择“公共登录流程”
-
创建另一个线程组并引用测试片段:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟2”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
- 在线程组中右键点击 -> 添加 -> 采样器 -> 模块控制器。
- 配置模块控制器:
- 名称:引用公共登录流程
- 测试片段:选择“公共登录流程”
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求成功执行。
优化建议
-
模块化设计:
- 将常用的功能(如登录、注销、查询等)封装成测试片段,提高测试计划的模块化程度。
-
复用性:
- 在多个线程组中引用同一个测试片段,减少重复配置,提高测试效率。
-
调试方便:
- 在测试片段中添加调试信息,帮助定位问题。可以使用日志记录或查看结果树监听器。
-
性能考虑:
- 如果测试中包含大量的请求,确保测试片段中的配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含两个线程组,并希望在每个线程组中重用一个公共的登录流程。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
创建测试片段:
- 右键点击测试计划 -> 添加 -> 测试片段 -> 输入测试片段名称(例如“公共登录流程”)。
-
添加登录请求:
- 在测试片段中右键点击 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加断言:
- 在登录请求下右键点击 -> 添加 -> 断言 -> 响应断言。
- 配置响应断言:
- 名称:验证登录成功
- 模式匹配规则:包含
- 模式:登录成功
-
创建第一个线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟1”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
引用测试片段:
- 在线程组中右键点击 -> 添加 -> 采样器 -> 模块控制器。
- 配置模块控制器:
- 名称:引用公共登录流程
- 测试片段:选择“公共登录流程”
-
创建第二个线程组并引用测试片段:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟2”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
- 在线程组中右键点击 -> 添加 -> 采样器 -> 模块控制器。
- 配置模块控制器:
- 名称:引用公共登录流程
- 测试片段:选择“公共登录流程”
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求成功执行。
2)非测试原件
1--HTTP(S)测试脚本记录器
功能特点
- 录制浏览器操作:录制用户的浏览器操作,生成相应的 JMeter 测试脚本。
- 支持 HTTPS:支持录制 HTTPS 请求,确保安全通信。
- 灵活配置:可以设置多个录制选项,满足不同的测试需求。
- 过滤器:使用过滤器排除不需要录制的请求。
配置步骤
-
启动 HTTP(S) 测试脚本记录器
- 右键点击测试计划 -> 添加 -> 非测试元件 -> HTTP(S) 测试脚本记录器。
-
配置 HTTP(S) 测试脚本记录器
- 名称:给 HTTP(S) 测试脚本记录器一个有意义的名称。
- 端口号:设置代理服务器的端口号(默认为 8888)。
- 上下文:设置录制的上下文,可以选择录制整个测试计划或特定的线程组。
- 过滤器:设置过滤器,排除不需要录制的请求。
- 证书:生成和安装证书,用于录制 HTTPS 请求。
-
配置浏览器代理
- 设置浏览器的代理服务器,指向 JMeter 的 HTTP(S) 测试脚本记录器。
- 例如,对于 Chrome 浏览器,可以在网络设置中设置代理服务器为
localhost:8888
。
-
开始录制
- 在 HTTP(S) 测试脚本记录器中点击“开始”按钮,开始录制浏览器操作。
- 执行需要录制的操作,例如登录网站、提交表单等。
-
停止录制
- 完成操作后,在 HTTP(S) 测试脚本记录器中点击“停止”按钮,停止录制。
-
查看和编辑生成的测试脚本
- 录制完成后,JMeter 会自动生成相应的测试脚本。
- 可以在测试计划中查看和编辑生成的取样器、前置处理器、后置处理器、断言等。
参数说明
- 名称:给 HTTP(S) 测试脚本记录器一个有意义的名称。
- 端口号:设置代理服务器的端口号(默认为 8888)。
- 上下文:设置录制的上下文,可以选择录制整个测试计划或特定的线程组。
- 过滤器:设置过滤器,排除不需要录制的请求。
- 证书:生成和安装证书,用于录制 HTTPS 请求。
示例配置
假设我们需要录制一个用户的登录流程,并生成相应的 JMeter 测试脚本。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
启动 HTTP(S) 测试脚本记录器:
- 右键点击测试计划 -> 添加 -> 非测试元件 -> HTTP(S) 测试脚本记录器。
-
配置 HTTP(S) 测试脚本记录器:
- 名称:HTTP(S) 测试脚本记录器
- 端口号:8888
- 上下文:选择录制整个测试计划
- 过滤器:
- 包含模式:输入需要录制的 URL 模式(例如
*.example.com/*
) - 排除模式:输入不需要录制的 URL 模式(例如
*.google.com/*
)
- 包含模式:输入需要录制的 URL 模式(例如
- 证书:
- 点击“生成”按钮,生成证书文件。
- 导出证书文件并安装到浏览器中。
-
配置浏览器代理:
- 对于 Chrome 浏览器,打开设置 -> 高级 -> 系统 -> 打开您的计算机的代理设置。
- 设置手动代理配置,HTTP 代理和 HTTPS 代理均设置为
localhost:8888
。
-
开始录制:
- 在 HTTP(S) 测试脚本记录器中点击“开始”按钮,开始录制浏览器操作。
- 打开浏览器,访问目标网站(例如
https://example.com
)。 - 执行登录操作,填写用户名和密码,点击登录按钮。
-
停止录制:
- 完成操作后,在 HTTP(S) 测试脚本记录器中点击“停止”按钮,停止录制。
-
查看和编辑生成的测试脚本:
- 录制完成后,JMeter 会自动生成相应的测试脚本。
- 在测试计划中查看生成的取样器、前置处理器、后置处理器、断言等。
- 编辑生成的脚本,添加必要的断言和监听器,确保测试的准确性和可靠性。
优化建议
-
过滤器设置:
- 使用过滤器排除不必要的请求,例如广告、跟踪脚本等,避免生成冗余的测试脚本。
-
证书管理:
- 确保证书正确安装到浏览器中,避免 HTTPS 请求录制失败。
- 如果需要录制多个浏览器的操作,确保每个浏览器都安装了相同的证书。
-
代理设置:
- 确保浏览器的代理设置正确,指向 JMeter 的 HTTP(S) 测试脚本记录器。
- 如果使用的是企业网络,可能需要额外配置代理服务器。
-
脚本优化:
- 录制完成后,仔细检查生成的测试脚本,删除不必要的请求。
- 添加必要的断言和监听器,确保测试的准确性和可靠性。
- 使用变量和参数化,提高测试脚本的灵活性和可重用性。
示例配置详细说明
假设我们有一个简单的测试计划,需要录制一个用户的登录流程,并生成相应的 JMeter 测试脚本。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
启动 HTTP(S) 测试脚本记录器:
- 右键点击测试计划 -> 添加 -> 非测试元件 -> HTTP(S) 测试脚本记录器。
-
配置 HTTP(S) 测试脚本记录器:
- 名称:HTTP(S) 测试脚本记录器
- 端口号:8888
- 上下文:选择录制整个测试计划
- 过滤器:
- 包含模式:输入需要录制的 URL 模式(例如
*.example.com/*
) - 排除模式:输入不需要录制的 URL 模式(例如
*.google.com/*
)
- 包含模式:输入需要录制的 URL 模式(例如
- 证书:
- 点击“生成”按钮,生成证书文件。
- 导出证书文件并安装到浏览器中。
-
配置浏览器代理:
- 对于 Chrome 浏览器,打开设置 -> 高级 -> 系统 -> 打开您的计算机的代理设置。
- 设置手动代理配置,HTTP 代理和 HTTPS 代理均设置为
localhost:8888
。
-
开始录制:
- 在 HTTP(S) 测试脚本记录器中点击“开始”按钮,开始录制浏览器操作。
- 打开浏览器,访问目标网站(例如
https://example.com
)。 - 执行登录操作,填写用户名和密码,点击登录按钮。
-
停止录制:
- 完成操作后,在 HTTP(S) 测试脚本记录器中点击“停止”按钮,停止录制。
-
查看和编辑生成的测试脚本:
- 录制完成后,JMeter 会自动生成相应的测试脚本。
- 在测试计划中查看生成的取样器、前置处理器、后置处理器、断言等。
- 编辑生成的脚本,添加必要的断言和监听器,确保测试的准确性和可靠性。
2--HTTP镜像服务器
功能特点
- 请求回显:HTTP 镜像服务器会返回接收到的请求内容作为响应,用于验证请求的正确性。
- 性能测试:可以用来测试 HTTP 请求的响应时间和性能。
- 简单配置:配置简单,易于使用。
配置步骤
-
启动 HTTP 镜像服务器
- 打开命令行终端。
- 导航到 JMeter 的
bin
目录。 - 运行以下命令启动 HTTP 镜像服务器:
其中jmeter -Dhttp.port=8080 -Dhttp.mirror_server=true -n -t <path_to_jmx_file>
<path_to_jmx_file>
是你的测试计划文件的路径。如果你只是想启动镜像服务器而不需要运行具体的测试计划,可以省略-t
参数。
-
配置 JMeter 测试计划
- 创建一个新的测试计划或打开现有的测试计划。
- 添加一个线程组。
- 在线程组中添加一个 HTTP 请求取样器。
- 配置 HTTP 请求取样器:
- 名称:HTTP 请求
- 服务器名称或IP:localhost
- 端口号:8080
- 协议:HTTP
- 方法:GET 或 POST
- 路径:/ (或其他路径)
- 参数:根据需要添加请求参数
-
运行测试
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保请求和响应内容一致。
参数说明
- http.port:设置 HTTP 镜像服务器监听的端口号(默认为 8080)。
- http.mirror_server:启用 HTTP 镜像服务器功能。
- -n:以非 GUI 模式运行 JMeter。
- -t:指定要运行的测试计划文件路径。
示例配置
假设我们需要测试一个简单的 HTTP GET 请求,并验证请求和响应内容的一致性。
-
启动 HTTP 镜像服务器
- 打开命令行终端。
- 导航到 JMeter 的
bin
目录。 - 运行以下命令启动 HTTP 镜像服务器:
jmeter -Dhttp.port=8080 -Dhttp.mirror_server=true -n
-
创建测试计划
- 打开 JMeter。
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“HTTP 镜像服务器测试”)。
-
添加线程组
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加 HTTP 请求取样器
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP 请求。
- 配置 HTTP 请求取样器:
- 名称:HTTP 请求
- 服务器名称或IP:localhost
- 端口号:8080
- 协议:HTTP
- 方法:GET
- 路径:/
- 参数:根据需要添加请求参数(例如,添加一个参数
name
,值为testuser
)
-
添加监听器
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 这将帮助你查看请求和响应的内容。
-
运行测试
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器,确保请求和响应内容一致。
优化建议
-
端口号选择:
- 确保选择的端口号没有被其他服务占用。默认端口号为 8080,如果已被占用,可以更改端口号。
-
请求参数:
- 根据需要添加请求参数,确保请求内容符合预期。
-
性能测试:
- 可以增加线程数和循环次数,模拟更多的并发用户,测试服务器的性能。
-
日志记录:
- 在测试计划中添加日志记录监听器,帮助调试和记录测试过程中的信息。
示例配置详细说明
假设我们有一个简单的测试计划,需要测试一个 HTTP GET 请求,并验证请求和响应内容的一致性。
-
启动 HTTP 镜像服务器
- 打开命令行终端。
- 导航到 JMeter 的
bin
目录。 - 运行以下命令启动 HTTP 镜像服务器:
深色版本
jmeter -Dhttp.port=8080 -Dhttp.mirror_server=true -n
-
创建测试计划
- 打开 JMeter。
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“HTTP 镜像服务器测试”)。
-
添加线程组
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加 HTTP 请求取样器
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP 请求。
- 配置 HTTP 请求取样器:
- 名称:HTTP 请求
- 服务器名称或IP:localhost
- 端口号:8080
- 协议:HTTP
- 方法:GET
- 路径:/
- 参数:
- 名称:name
- 值:testuser
-
添加监听器
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 这将帮助你查看请求和响应的内容。
-
运行测试
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器,确保请求和响应内容一致。
3--属性显示
功能特点
- 请求和响应查看:查看每个请求的请求头、请求体、响应头和响应体。
- 断言结果:查看与请求关联的断言结果。
- 树形结构:以树形结构展示请求和响应数据,方便导航和查看。
- 支持多种格式:支持查看 HTML、XML、JSON 等多种格式的响应数据。
配置步骤
-
添加属性显示监听器
- 右键点击需要添加监听器的线程组或测试计划。
- 选择“添加” -> “监听器” -> “查看结果树”。
-
配置属性显示监听器
- 名称:给属性显示监听器一个有意义的名称。
- 保存响应数据:选择是否保存响应数据。
- 显示模式:选择显示模式,例如:
- 树形视图:以树形结构显示请求和响应数据。
- 表格视图:以表格形式显示请求和响应数据。
- 仅显示失败:只显示失败的请求。
- 高级设置:可以设置更多高级选项,例如响应数据的最大长度。
参数说明
- 名称:给属性显示监听器一个有意义的名称。
- 保存响应数据:选择是否保存响应数据。如果选择保存,响应数据将被记录到监听器中,方便后续查看。
- 显示模式:
- 树形视图:以树形结构显示请求和响应数据。
- 表格视图:以表格形式显示请求和响应数据。
- 仅显示失败:只显示失败的请求。
- 高级设置:
- 响应数据的最大长度:设置响应数据的最大长度,超出部分将被截断。
- 显示响应数据:选择是否显示响应数据。
- 显示响应头:选择是否显示响应头。
- 显示请求数据:选择是否显示请求数据。
- 显示请求头:选择是否显示请求头。
示例配置
假设我们需要测试一个Web应用,并查看登录请求的请求和响应数据。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加属性显示监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 配置属性显示监听器:
- 名称:查看请求和响应
- 保存响应数据:勾选
- 显示模式:选择“树形视图”
- 高级设置:
- 响应数据的最大长度:10240
- 显示响应数据:勾选
- 显示响应头:勾选
- 显示请求数据:勾选
- 显示请求头:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 在属性显示监听器中查看请求和响应数据,确保请求和响应内容正确。
优化建议
-
响应数据保存:
- 如果测试中包含大量的请求,可以选择不保存响应数据,以减少内存消耗。可以在测试结束后再启用保存响应数据,以便调试。
-
显示模式:
- 根据需要选择合适的显示模式。例如,如果只想查看失败的请求,可以选择“仅显示失败”模式。
-
响应数据长度:
- 设置合理的响应数据最大长度,避免因数据过大导致性能问题。
-
请求和响应头:
- 根据需要选择是否显示请求和响应头,这有助于调试请求和响应的详细信息。
示例配置详细说明
假设我们有一个简单的测试计划,需要测试一个登录请求,并查看请求和响应数据。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加属性显示监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
- 配置属性显示监听器:
- 名称:查看请求和响应
- 保存响应数据:勾选
- 显示模式:选择“树形视图”
- 高级设置:
- 响应数据的最大长度:10240
- 显示响应数据:勾选
- 显示响应头:勾选
- 显示请求数据:勾选
- 显示请求头:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 在属性显示监听器中查看请求和响应数据,确保请求和响应内容正确。