jmeter调试脚本之用户自定义变量

本文介绍如何在HTTP请求中使用用户自定义变量,包括变量的创建、赋值及引用方法,通过实例演示如何设置IP地址和端口号变量,以实现请求参数的动态变化。

一、用户自定义的变量 

用户自定义变量,设置变量名、变量值,就引用变量名执行操作

  • 名称:用户定义变量的描述性名称,显示在左边节点上,并用于命名事务

  • 注释:用户定义变量的注释信息,非必填项

  • 变量名称:定义变量引用的名称,如:设置变量名为IPAdress 在HTTP请求内引用:${IPAdress}

  • 值:给变量赋值比例IP地址值可以设置:192.168.1.100

  • Description:变量进行描述,可以不填写

  • 添加:添加变量行;

  • 删除:删除变量行;

例子:重点内容设置IP地址参数 

添加——配置元件——用户定义的变量 ,打开变量页面

维护变量信息: 

  • IP地址变量名设置为:IPAdress 
  • 端口号:Port 

在要引用变更的HTTP请求页面,填写引用变更的值: 
在 服务器名称或IP内 变IP地址为 ${IPAdress},端口号改为 ${ Port } 

保存后,运行程序,在查看结果树内,查看运行结果 ,看是否允许运行成功

<think> 嗯,用户需要的是在JMeter的JSR223断言中自定义成功信息脚本用户已经提供了几个相关引用,我需要从中提取关键信息并结合实际应用给出解决方案。 用户提供的引用[4]中有个很好的例子,展示了如何用Groovy脚本在JSR223断言中设置自定义成功信息。关键点在于使用AssertionResult对象的setFailureMessage方法。当断言成功时,可以通过AssertionResult.setFailure(false)标记断言通过,并用setFailureMessage("ok")设置成功信息;失败时则设置为true并给出错误提示。 用户可能正在调试测试脚本,需要更清晰的断言反馈。考虑到JSR223支持多种语言,但Groovy是JMeter官方推荐的高效选择,应该重点推荐Groovy实现。示例中的日志输出(log.info)也很实用,可以帮助用户调试脚本用户引用的资料里提到可以通过vars.get()获取变量值,这在需要比较多个接口返回值时特别有用。比如用户可能正在验证两个接口返回数据的关联性,就像引用[4]中的房源数量比对场景。 需要提醒用户注意脚本执行效率,避免在断言中编写复杂逻辑影响测试性能。另外,成功信息自定义主要依赖AssertionResult.setFailureMessage方法,这个在JMeter的监听器中可以查看。 用户提供的参考内容质量不错,特别是引用[4]的示例非常贴近需求。不过要注意引用[3]提到的是Python插件,而官方更推荐Groovy,这点需要明确说明。 </think> 以下是基于引用内容整理的 **JSR223断言自定义成功信息的Groovy脚本** 及详细说明: ```groovy // 获取JMeter变量(示例:比较两个接口的返回值) def value1 = vars.get("responseVar1") // 从关联变量获取值 def value2 = vars.get("responseVar2") // 自定义断言逻辑 if (value1 == value2) { AssertionResult.setFailure(false) // 标记断言成功 AssertionResult.setFailureMessage("✅ 数据校验成功:${value1} 等于 ${value2}") // ✨ 关键:设置成功提示消息 } else { AssertionResult.setFailure(true) AssertionResult.setFailureMessage("❌ 数据不一致:${value1} 不等于 ${value2}") } // 调试输出(可选) log.info("JSR223断言结果:" + AssertionResult.getFailureMessage()) ``` ### 核心说明: 1. **自定义成功消息的关键方法** ```groovy AssertionResult.setFailure(false) // 必须先标记断言成功 AssertionResult.setFailureMessage("✅ 自定义成功信息") // 设置成功提示 ``` 2. **变量获取方式** - `vars.get("变量名")`:从JMeter变量池中取值(如提取器生成的变量) - `prev.getResponseDataAsString()`:获取当前请求的原始响应数据 - 支持字符串操作、JSON解析等复杂逻辑(需自行实现) 3. **调试技巧** - 使用 `log.info()` 在JMeter日志中输出调试信息 - 添加 `SampleResult.setIgnore()` 可跳过当前请求(调试时避免产生实际请求) ### 使用场景示例: ```groovy // 场景:验证订单状态是否为"PAID" def response = prev.getResponseDataAsString() def orderStatus = new groovy.json.JsonSlurper().parseText(response).status if (orderStatus == "PAID") { AssertionResult.setFailure(false) AssertionResult.setFailureMessage("✔️ 订单支付状态验证通过") // 自定义成功消息 } else { AssertionResult.setFailure(true) AssertionResult.setFailureMessage("✖️ 异常状态:${orderStatus}") } ``` > **注意事项** > 1. 脚本语言需在断言面板中选择 **Groovy**(性能最佳[^2]) > 2. 成功消息仅在断言成功时显示在监听器的 **Assertion Result** 列 > 3. 复杂逻辑建议先用 `log.info()` 调试变量值[^4] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值