5--JSR223 Listener
用途
- 自定义数据处理:使用脚本语言处理测试结果,实现高度定制化的数据处理和分析。
- 实时监控:实时处理和显示测试结果。
- 集成外部系统:将测试结果发送到外部系统进行进一步处理和分析。
- 日志记录:记录详细的测试结果到日志文件。
支持的脚本语言
- Groovy:推荐使用,性能优越且功能强大。
- JavaScript:支持 ECMAScript 标准。
- BeanShell:支持 Java 语法。
- 其他语言:支持任何符合 JSR223 规范的脚本语言。
配置步骤
-
添加 JSR223 Listener
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “监听器” -> “JSR223 Listener”。
-
配置 JSR223 Listener
- 名称:给 JSR223 Listener 一个有意义的名称。
- 脚本语言:选择使用的脚本语言(例如 Groovy)。
- 脚本文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
- 脚本:直接在脚本编辑框中编写脚本。
- 参数:定义脚本中使用的参数(可选)。
示例配置
假设我们需要使用 Groovy 脚本记录每个请求的响应时间和状态码到日志文件中。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加 JSR223 Listener:
- 右键点击线程组 -> 添加 -> 监听器 -> JSR223 Listener。
- 配置 JSR223 Listener:
- 名称:JSR223 Listener
- 脚本语言:Groovy
- 脚本:在脚本编辑框中编写以下脚本:
import java.text.SimpleDateFormat// 获取当前时间 def now = new Date() def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") def currentTime = dateFormat.format(now)// 获取请求名称、响应时间、状态码 def label = prev.getSampleLabel() def responseTime = prev.getTime() def statusCode = prev.getResponseCode()// 构建日志消息 def logMessage = "${currentTime} - ${label} - Response Time: ${responseTime} ms - Status Code: ${statusCode}"// 写入日志文件 def logFile = new File('C:\\logs\\test_results.log') logFile << logMessage + '\n'
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
-
查看日志:
- 打开日志文件
C:\\logs\\test_results.log
,查看记录的测试结果。
- 打开日志文件
优化建议
-
脚本语言选择:
- 推荐使用 Groovy,因为它性能优越且功能强大,是 JMeter 官方推荐的脚本语言。
-
脚本文件:
- 如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 JSR223 Listener 中选择脚本文件路径。
-
参数:
- 如果脚本需要使用外部参数,可以在“参数”部分定义参数,并在脚本中引用这些参数。
-
性能影响:
- 注意复杂脚本可能会对测试性能产生影响,特别是大规模性能测试中。可以通过优化脚本和减少不必要的操作来提高性能。
-
错误处理:
- 在脚本中添加适当的错误处理逻辑,确保脚本在遇到异常时能够优雅地处理。
-
日志记录:
- 使用日志记录功能可以帮助调试和分析测试结果,确保日志文件路径有效且有足够的写权限。
6--保存响应到文件
用途
- 数据保存:将响应数据保存到文件中,便于后续分析和验证。
- 调试:保存响应数据以便于调试和排查问题。
- 数据归档:长期保存响应数据,用于归档和历史记录。
配置步骤
-
添加保存响应到文件监听器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “监听器” -> “保存响应到文件”(Save Responses to a file)。
-
配置保存响应到文件监听器
- 名称:给保存响应到文件监听器一个有意义的名称。
- 文件名:指定保存响应数据的文件路径和文件名。
- 文件格式:选择保存文件的格式(例如
txt
、html
、xml
等)。 - 追加文件:选择是否将新的响应数据追加到现有文件中。
- 仅保存成功响应:选择是否仅保存成功的响应数据。
- 仅保存失败响应:选择是否仅保存失败的响应数据。
- 响应字段:选择保存响应的哪个部分(例如响应数据、响应头、响应码等)。
示例配置
假设我们需要测试一个Web应用,并将每个请求的响应数据保存到文件中。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加保存响应到文件监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 保存响应到文件。
- 配置保存响应到文件监听器:
- 名称:保存响应到文件
- 文件名:
C:\\responses\\response_*.txt
(*表示每个请求生成一个独立的文件) - 文件格式:
txt
- 追加文件:选择“否”(每个请求生成一个独立的文件)
- 仅保存成功响应:选择“是”(仅保存成功的响应数据)
- 仅保存失败响应:选择“否”(不保存失败的响应数据)
- 响应字段:选择“响应数据”(保存响应的主体内容)
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
-
查看文件:
- 测试完成后,打开指定的文件夹
C:\\responses\\
,查看保存的响应文件。
- 测试完成后,打开指定的文件夹
优化建议
-
文件名:
- 确保文件名路径有效且具有足够的写权限。使用通配符
*
可以为每个请求生成一个独立的文件。
- 确保文件名路径有效且具有足够的写权限。使用通配符
-
文件格式:
- 根据响应数据的格式选择合适的文件格式,例如
txt
、html
、xml
等。
- 根据响应数据的格式选择合适的文件格式,例如
-
追加文件:
- 如果需要将所有响应数据保存到同一个文件中,选择“是”。如果需要为每个请求生成一个独立的文件,选择“否”。
-
仅保存成功响应:
- 如果只需要保存成功的响应数据,选择“是”。这可以减少文件的数量和大小。
-
仅保存失败响应:
- 如果只需要保存失败的响应数据,选择“是”。这可以帮助快速定位和分析问题。
-
响应字段:
- 根据需要选择保存响应的哪个部分,例如响应数据、响应头、响应码等。
7--保存响应时间图
用途
- 性能评估:直观地评估系统的性能,查看响应时间的变化趋势。
- 问题定位:通过图表识别性能瓶颈和异常情况。
- 报告生成:生成可视化的测试报告,便于分享和展示。
配置步骤
-
添加保存响应时间图监听器
- 右键点击线程组(Thread Group)。
- 选择“添加” -> “监听器” -> “保存响应时间图”(Response Times Over Time)。
-
配置保存响应时间图监听器
- 名称:给保存响应时间图监听器一个有意义的名称。
- 文件名:指定保存图表的文件路径和文件名(例如
C:\\reports\\response_times.png
)。 - 文件格式:选择保存文件的格式(例如
png
、jpg
、svg
等)。 - 时间间隔:设置生成图表的时间间隔(例如每分钟生成一张图表)。
- 显示平均值:选择是否在图表中显示平均响应时间。
- 显示最小值:选择是否在图表中显示最小响应时间。
- 显示最大值:选择是否在图表中显示最大响应时间。
- 显示中位数:选择是否在图表中显示中位数响应时间。
- 显示标准差:选择是否在图表中显示标准差。
- 显示错误率:选择是否在图表中显示错误率。
示例配置
假设我们需要测试一个Web应用,并生成响应时间的图表以评估性能。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
-
添加HTTP请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求名称(例如“获取用户列表”)。
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:请求的方法(例如
GET
)。 - 路径:请求的路径(例如
/api/users
)。
-
添加保存响应时间图监听器:
- 右键点击线程组 -> 添加 -> 监听器 -> 保存响应时间图。
- 配置保存响应时间图监听器:
- 名称:保存响应时间图
- 文件名:
C:\\reports\\response_times.png
- 文件格式:
png
- 时间间隔:1分钟
- 显示平均值:选择“是”
- 显示最小值:选择“是”
- 显示最大值:选择“是”
- 显示中位数:选择“是”
- 显示标准差:选择“是”
- 显示错误率:选择“是”
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
-
查看图表:
- 测试完成后,打开指定的文件
C:\\reports\\response_times.png
,查看生成的响应时间图表。
- 测试完成后,打开指定的文件
优化建议
-
文件名:
- 确保文件名路径有效且具有足够的写权限。可以使用通配符或时间戳生成唯一的文件名,避免覆盖。
-
文件格式:
- 根据需要选择合适的文件格式,例如
png
、jpg
、svg
等。png
格式通常适用于高质量的图表。
- 根据需要选择合适的文件格式,例如
-
时间间隔:
- 根据测试需求设置合适的时间间隔,例如每分钟生成一张图表。时间间隔过短可能会生成大量图表文件,影响性能。
-
显示选项:
- 根据需要选择显示的统计信息,如平均值、最小值、最大值、中位数、标准差和错误率。选择合适的选项可以帮助更好地分析性能。
-
性能影响:
- 注意生成图表可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整时间间隔和显示选项来优化性能。
-
图表分析:
- 使用生成的图表进行性能分析,识别性能瓶颈和异常情况。可以结合其他监听器(如“聚合报告”、“汇总报告”等)一起使用,进行更全面的分析。
8--图形结果
功能特点
- 响应时间:显示每次请求的响应时间,帮助用户了解请求处理的速度。
- 吞吐量:显示单位时间内完成的请求数量,反映系统的处理能力。
- 错误率:显示错误请求的比例,帮助发现潜在的问题。
- 并发用户数:显示同时发送请求的用户数量,有助于评估系统在不同负载下的表现。
如何配置“图形结果”监听器
-
添加监听器
- 在JMeter中,右键点击你的测试计划或者线程组。
- 选择“添加” > “监听器” > “图形结果”。
-
配置基本设置
- 标题:你可以为这个监听器设置一个标题,以便于识别。
- 显示响应时间:可以选择是否显示响应时间的图形。
- 显示吞吐量:可以选择是否显示吞吐量的图形。
- 显示错误率:可以选择是否显示错误率的图形。
- 显示并发用户数:可以选择是否显示并发用户的图形。
-
高级配置
- 刷新周期:设置图形更新的频率,单位为毫秒。较低的数值可以使图形实时更新,但可能会增加CPU负担。
- 显示数据点:可以选择是否在图形上显示具体的数据点。
- 显示平均值:可以选择是否在图形上显示响应时间或吞吐量的平均值。
- 显示中位数、最小值、最大值:这些选项允许你在图形上显示响应时间或吞吐量的中位数、最小值和最大值。
- 显示标准差:显示响应时间或吞吐量的标准差,帮助评估数据分布的离散程度。
-
运行测试
- 完成上述配置后,就可以运行你的测试了。运行测试时,“图形结果”监听器会自动收集数据并生成相应的图形。
-
分析结果
- 测试结束后,通过观察图形结果,可以很容易地看出哪些时间段内系统的性能有所下降,哪些操作可能成为瓶颈。此外,错误率的图形可以帮助快速定位问题所在。
注意事项
- 性能开销:“图形结果”监听器会占用一定的资源来收集和展示数据,因此在进行大规模压力测试时,应该谨慎使用,或者考虑在测试结束后再开启此功能,以减少对测试本身的影响。
- 数据保存:默认情况下,“图形结果”监听器不会自动保存图形数据。如果需要保存,可以手动截图或者查找其他方式导出数据。