如何对 Apache JMeter 测试脚本进行 Debug?(下)

简介: 如何对 Apache JMeter 测试脚本进行 Debug?
  1. 如果现在执行脚本,新创建的变量 “deckId” 的值也将显示在响应中。

image.png

这样我们可以查看到所有 user-defind 定义的变量的值,可以帮助我们去判断或者识别脚本中的问题。

如何打印出 JMeter 属性值和 System 属性值

JMeter 中有很多默认设置的属性。在大多数情况下没有必要去改变它们,但是在某些特殊的情况下你需要去改变它们的值。

对于系统属性值也是一样,这些属性有时仍有可能导致性能脚本失败。比如默认的 SSL 设置不适合测试。

更改 JMeter 属性的最简单方法是通过更改 JMeter Debug Sampler 中的相关设置来打印这些值。这样我们可以将当前 JMeter 属性和 System 属性的值与期望的值进行比较,并修复问题。修改后的 JMeter Debug Sampler 的设置示例如下所示:

image.png

为了调试JMeter脚本,我们将执行脚本。由于我更改了第二个 Debug Sampler 的设置,这些 JMeter 属性值 和 System 属性值会在响应中显示。

image.png

如何使用 JMeter 的 Debug PostProcessor?

PostProcessor 在 JMeter 中总是后执行的。比如在 HTTP 请求完成之后才会执行。Debug PostProcessor 组件就是用于具体查看与其嵌套的父采样器相关的属性。

在接下来的例子中,你将会学习如何使用 Debug PostProcessor 来检查脚本中的值,以便进行脚本调试。

image.png

使用 Debug PostProcessor 的准备工作

在当前例子中将使用调用 deckofcards 的 HTTP GET 请求方式并且路径为 draw 的接口。

deckofcards 是一组免费的公共 API,为了避免过载。将在下一次调用之前添加一个定时器。draw  输入和输出如下所示。

image.png

添加了 draw 接口后的测试计划如下所示:

image.png

我们可以使用 JSON 提取器提取 remaining 的值,并使用 Debug PostProcessor 打印出来。因此,首先添加 JSON 提取器,以提取名为 remaining 的变量,并为其提供以下 JSON 路径表达式:

$.remaining

具体如下图所示:

image.png

如何在 HTTP Request 中添加 Debug Post-Processor 组件

Post-processors 需要添加在 sampler 中。在本例中我们将在 Draw 这个 HTTP Sampler 中添加一个 Debug Post Processor。

可以右击 Draw HTTP Request 选择 “Add -> Post Processors -> Debug PostProcessor” 来添加一个 Debug Post Processor。

如果我们在完成上述步骤后运行脚本,我们将看到 Sampler 属性和 JMeter 变量在响应中输出。输出还将显示用于方法调用的路径。这个路径很重要,因为这里的错误可能会导致脚本失败。 Draw API 调用存储在用户定义的变量中的值。如果变量的值不正确,则会导致脚本失败。

执行脚本,输出结果如下:

image.png

使用 JSR223 Sampler 进行 Debug

添加一个 JSR223 Sampler 也可以对脚本记性 Debug,JSR223 Sampler 的首要作用是执行你提供的代码,但是你可以通过代码来获取脚本运行时的变量,JSR223 Sampler 支持使用多种 JVM 语言,包括 Java 和 Groovy。

我已经在当前线程组中添加了一个 JSR223 Sampler,该 Sampler 默认的语言是 Groovy,在本例中也将使用 Groovy。

我们可以简单地使用以下代码行将用户定义的变量 deckId 和变量 remaining 变量打印到 JMeter 控制台:

log.info("DeckId:" + vars.get("deckId"))
log.info("Remaining: " + vars.get("remaining"))
复制代码

JSR223 Sampler 内容如下图所示:

image.png

通过执行脚本,我们可以在日志中看到这些变量值。

JMeter 日志中打印的结果的屏幕截图如下所示。您可以看到 JMeter 测试脚本中定义的变量的内容,以便进行调试。这个结果的截图还可以帮助确定脚本中的错误。

image.png

相关文章
|
2月前
|
测试技术 Linux
VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
237 3
|
4月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
652 0
|
3月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
874 10
|
2月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
106 0
|
3月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
532 0
|
4月前
|
Web App开发 JavaScript 测试技术
Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本
本文带你1小时快速入门Playwright,完成环境搭建并编写首个测试脚本。Playwright是微软推出的现代化Web自动化测试工具,支持Chromium、Firefox和WebKit三大浏览器引擎,具备跨平台、多语言(Python/JS/Java/C#)特性。其核心优势包括:智能自动等待机制减少失败率、内置录制工具实时生成脚本、多语言灵活选择,以及真移动端设备模拟能力,显著提升测试效率和可靠性。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
974 23
|
7月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
9月前
|
人工智能 自然语言处理 测试技术
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
790 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
|
10月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
291 35

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置