jmeter——JSON提取器(从上一个请求的响应结果提取参数传给下一个请求)

JMeter JSON变量提取教程
本文详细介绍如何使用JMeter的JSON提取器从响应报文中提取变量,并将其传递给后续请求。包括格式化JSON、配置JSON提取器及示例。

记录一个参数提取过程,可供后续参考。


1. 查看响应报文的结构

  将上一个请求的响应报文复制到Notepad++编辑器

JSON Viewer是Notepad++的JSON插件,
Notepad++的Plugins Admin可以安装管理插件,
它不仅可以格式化JSON字符串,
还可以打开JSON查看器查看结构化的JSON。

  使用插件JSON Viewer的Format JSON功能格式化JSON文本;

  使用插件JSON Viewer的Show JSON Viewer功能查看其树形层次结构。具体如下:

2.  jmeter的JSON提取器介绍

  路径:线程组 > 添加 > 后置处理器 > JSON提取器。如下所示:

#JSON提取器注释
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Apply to:应用范围。选默认的main sample only就行
Names of created variables:变量名(多个变量名用;隔开),后面使用${Variable names}引用。必传
JSON Path expression:json提取表达式(多个表达式用;隔开),变量值绝对路径。必传
Match No.(0 for Random):提取第几个值(0:随机,默认;-1所有;1第一个值)。非必传
Compute concatenation var(suffix_ALL):如果发现许多结果,插件将使用“,”分隔符将它们连接起来,并将其存储在名为_ALL的var中
Default Values:缺省值,匹配不到值的时候取该值,可写error;多个值用分号分割。非必传

 3. JSON提取示例:

  通过json提取器提取图1中的第一个vouGuid,如下:

#JSON提取表达式注释
根节点用$表示
object用.表示
Array用[]表示

4. 提取变量传给下个请求

5. 一次提取多个变量传给下个请求

### 获取 HTTP 请求报文长度的方法 在 JMeter 中,可以通过自定义 Java 代码或者使用内置函数来计算并记录 HTTP 请求报文的长度。对于想要获取请求报文长度的情况,可以利用 `Sampler` 和 `PreProcessor` 或者 `PostProcessor` 来实现这一功能。 如果希望直接通过配置属性的方式设置与消息长度有关的内容,在某些情况下可能会涉及到像下面这样的代码片段: ```java private final int lengthPrefixLen = JMeterUtils.getPropDefault("tcp.charlength.prefix.length", 8); ``` 这段代码展示了如何读取配置项 `"tcp.charlength.prefix.length"` 的默认值作为前缀长度[^1]。不过这主要用于 TCP Sampler 场景下的字符长度前缀设定,并不是直接用于测量整个 HTTP 请求的实际大小。 为了准确地获得 HTTP 请求的具体字节数或字符数,建议采用监听器组件中的 “View Results Tree” 工具查看详细的请求详情;也可以编写 BeanShell PreProcessor/PostProcessor 脚本来自动生成这些统计数据。例如,可以在 PostProcessor 中加入如下脚本来捕获每次发送出去的数据量: ```beanshell import org.apache.jmeter.protocol.http.sampler.HTTPSampleResult; // 取得当前采样结果对象 HTTPSampleResult res = (HTTPSampleResult) prev; // 输出请求体的长度到日志中 log.info("Request body size: " + res.getBodySize()); ``` 上述方法能够帮助测试人员了解每一次请求所携带的信息总量,从而更好地分析性能瓶颈所在之处。 另外需要注意的是,当讨论 Web 应用程序交互过程时,通常涉及到了完整的通信流程,其中包括但不限于客户端发起请求、Web 服务器接收请求并作出回应等一系列操作[^3]。而响应的状态码则用来指示此次交换的结果状态,如常见的有表示成功的 `200 OK` 状态码等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值