jmeter—关联设置

jmeter想要从一个请求中获取数据,通常有两种关联方法
一、 正则表达式提取器
方法一,从前一个请求中,用正则表达式提取器
1. 使用方法
具体方法:在需要获得数据的请求上添加一个后置处理器—>正则表达式
这里写图片描述
设置正则表达提取器的模板
这里写图片描述
2. 参数详解
引用名称:即下一个要引用的参数名称
正则表达式:填写要提取的正则表达式,()就是要提取的内容,.代表任意字符,*代表出现任意次数
模板:用$$引用起来,如果在正则表达式中有多个正则表达式(含有多个括号括起来的),则可以是用$数字$表示解析到的第几个值给引用名称,例如,$2$标识吧解析到的第二个值给title
匹配数字:0代表随机,-1代表所有,其余正整数代表将在检查的内容中,第几个匹配的内容提取出来,此处我们把第一个匹配的内容提取出来,故此处设置为1
缺省值:表示参数没有取到的话,默认给它的值。一般不填写
3. 具体示例
如上脚本中,我们想判断正则表达式是否真的提取到了值,验证如下:
添加一个请求,请求参数引用正则表达式的提取值,即title
这里写图片描述
添加查看结果树,查看请求结果
我们看到第一个请求中,我们正则表达式想要提取的结果如下,红框中圈出,那么如果在下一个请求中出现请求参数为红框中内容,说明提取结果存在,且正确
这里写图片描述
查看第二个请求内容
这里写图片描述
我们看到请求内容果然是我们想要获取的,且两者一样,这样我们的关联设置就是正确的,但是此处我们发现报错,具体原因我们来排查一下
这里写图片描述
4. 问题处理
切换到响应数据中,我们看到请求的内容中文乱码,那么我们既然判断了关联内容时正确的,为了解决这个问题,我们重新设置一下我们的采样器
这里写图片描述
勾选编码,然后在重新指向一下,看看我们的问题是否解决
这里写图片描述
重新执行后我们看到URI请求参数进行了URI编码,查看响应数据,看看传输的内容是否正确
这里写图片描述
可以看到我们的传输内容时正确的,问题解决。
二、 xpath从前一个请求中获取
方法二,用xpath从前一个请求中获取,这种方式比较适合返回为xml片段的情况
此处还以我们上边举得例子来进行演示:
1. 使用方法
xpath Extractor设置页面
这里写图片描述
2. 参数详解
Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项
引用名称:存放提取出的值的参数。
XPath Query:用于提取值的XPath表达式。
缺省值:参数的默认值。
3. 示例演示
此处我们演示如何获取title的值,配置xpath提取器如下:
这里写图片描述
查看结果树,判断提取值是否正确
这里写图片描述
4. 问题处理
可以看到我们正确进行了提取,异常报错处理方法如上边解决方案。
以上便是关联设置中的常用两种方法。

### JMeter关联的用法及实现方式 #### 什么是关联? 在 JMeter 测试中,关联是一种重要的技术,用于处理动态参数。动态参数指的是服务器响应中的某些字段,这些字段可能会随着每次请求而变化,例如会话 ID、令牌(Token)、订单号等[^2]。为了确保后续请求的有效性和准确性,需要从上一次响应中提取这些动态参数,并将其递到下一个请求。 --- #### 关联的主要作用 1. **动态会话参数处理**:如 Session ID 或 Token 的管理。 2. **服务器返回的数据依赖**:如订单号、验证码等,可能需要用于后续接口调用。 3. **提高测试的准确性**:通过动态参数替换静态值,避免因硬编码而导致请求失败。 --- #### 实现关联的方法 以下是几种常见的实现方法及其具体操作: ##### 方法一:正则表达式提取器 (Regular Expression Extractor) 正则表达式提取器是最常用的工具之一,适用于 HTML 和 XML 响应格式。它可以通过编写正则表达式来匹配目标字段并提取其值。 ###### 示例: 假设服务器返回如下 JSON 数据: ```json { "code": "0", "msg": "success", "data": { "token": "abcde12345" } } ``` 如果需要提取 `token` 字段,则可以按照以下步骤配置正则表达式提取器: - 右键单击 HTTP 请求 -> 添加 -> 后置处理器 -> 正则表达式提取器。 - 配置项: - 名称为:`regex_token` - 正则表达式:`"token"\s*:\s*"([^"]+)"` - 模板:`$1$` - 匹配编号:`1` - 默认值:`NOT_FOUND` 这样就可以将 `token` 提取出来,并存储为变量 `regex_token`。 --- ##### 方法二:JSON 路径提取器 (JSON Path Extractor) 对于 JSON 格式的响应数据,推荐使用 JSON 路径提取器。它可以更直观地定位所需字段。 ###### 示例: 继续以上述 JSON 数据为例,若要提取 `token` 字段,可以按以下步骤配置 JSON 路径提取器: - 右键单击 HTTP 请求 -> 添加 -> 后置处理器 -> JSON 路径提取器。 - 配置项: - 变量名称:`json_token` - JSON 路径表达式:`$.data.token` - 默认值:`NOT_FOUND` 此时,`token` 将被提取并存储为变量 `json_token`[^4]。 --- ##### 方法三:CSS/JQuery 提取器 当面对复杂的 HTML 页面时,CSS/JQuery 提取器可以帮助快速定位特定元素的内容。 ###### 示例: 假如页面中有如下结构: ```html <div id="session-id">abcdefg</div> ``` 如果想提取 `id` 属性对应的值,可以配置 CSS/JQuery 提取器: - 右键单击 HTTP 请求 -> 添加 -> 后置处理器 -> CSS/JQuery 提取器。 - 配置项: - 名称:`css_session_id` - CSS/JQuery 表达式:`div#session-id` - 属性:无 - 匹配编号:`1` - 默认值:`NOT_FOUND` 最终,`abcdefg` 将作为变量 `css_session_id` 存储下来。 --- ##### 方法四:XPath 提取器 针对 XML 格式的响应数据,可以使用 XPath 提取器进行解析和提取。 ###### 示例: 假设有如下 XML 数据: ```xml <response> <status>OK</status> <sessionId>xyz789</sessionId> </response> ``` 如果需要提取 `<sessionId>` 的值,可以按以下步骤配置 XPath 提取器: - 右键单击 HTTP 请求 -> 添加 -> 后置处理器 -> XPath 提取器。 - 配置项: - 名称:`xpath_session_id` - XPath 查询语句:`/response/sessionId/text()` - 默认值:`NOT_FOUND` 这一步完成后,`xyz789` 将被赋值给变量 `xpath_session_id`[^3]。 --- #### 如何验证提取结果? 在实际测试过程中,建议添加“查看结果树”监听器,以便观察提取后的变量值是否正确。可以在调试采样器或日志中打印变量内容,确认其已被成功捕获。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值