如何对 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月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
79 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
4月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
5月前
|
测试技术 Shell
shell脚本写的班级管理系统测试用例
shell脚本写的班级管理系统测试用例
59 1
|
5月前
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
78 3
|
5月前
|
监控 Java 关系型数据库
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
321 1
|
15天前
|
SQL 存储 分布式计算
Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
【4月更文挑战第7天】Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
16 0
|
22天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
2月前
|
XML Shell Linux
性能工具之 JMeter 使用 Python 脚本快速执行
性能工具之 JMeter 使用 Python 脚本快速执行
41 1
性能工具之 JMeter 使用 Python 脚本快速执行
|
5月前
|
人工智能 自然语言处理 测试技术
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
84 0
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
|
2月前
|
Shell Linux 网络安全
性能工具之 JMeter 使用 shell 脚本快速执行
【2月更文挑战第30天】性能工具之 JMeter 使用 shell 脚本快速执行
108 1
性能工具之 JMeter 使用 shell 脚本快速执行

推荐镜像

更多