jmeter中如何将页面请求返回值作为下次请求的参数

本文介绍在接口测试过程中如何使用正则表达式从一个接口的返回值中精确提取所需的特定字段值,例如验证码。文章详细解释了正则表达式的正确用法,并给出具体的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做接口测试的过程中,总是能遇到这次测试接口的参数需要别的接口返回值,这时使用正则表达式


上一个获取验证码接口的返回格式是{"captcha":"XXXX","content":"XXXX"}

1.正则表达式:如果填写{"captcha"."(.*?)"}这就表明取返回的所有内容("captcha":"XXXX","content":"XXXX"),这个不是我想要的,我只需要captcha的值就行;

2.()内是你需要取的值

匹配数字 : 一个正整数代表需要匹配几次 0代表随机匹配  -1代表全部匹配. 这里就写1只要成功匹配一次就可以了


在下一个http请求直接使用就行

### 如何在 JMeter 中提取响应数据并设置为全局变量 #### 使用 JSON Extractor 提取 Token 并通过 BeanShell 设置为全局变量 为了实现跨多个线程组共享同一 token,在 JMeter 测试计划中,可以通过以下方式完成: 1. **JSON Extractor** 在请求之后添加 `JSON Extractor` 来解析 HTTP 响应中的特定字段。假设目标是从登录 API 获取名为 `"token"` 的字符串,则需配置如下: - 名称为:`Extract Token` - JSON 路径表达式:`$.token` 或者更具体的路径取决于实际返回结构 - 默认值:`NOT_FOUND` 2. **BeanShell PostProcessor** 接着在同一采样器下添加 `BeanShell PostProcessor` 用于处理已提取的数据,并将其转换成全局可用的属性。 ```java String extractedToken = vars.get("extracted_token"); // 替换 "extracted_token" 为你在 JSON Extractor 中指定的名字 props.put("global.token", extractedToken); ``` 3. **访问全局变量** 当希望在线程组间重用此 token 时,只需利用 `${__P(global.token,)}` 即可读取之前存储于属性文件内的值[^1]。 上述过程确保了即使是在不同线程组内也能安全有效地传递和使用相同的认证令牌或其他重要信息[^2]。 另外一种方法是直接采用内置函数 `__setProperty()` 和 `__property()`, 这允许更加简洁地操作而无需额外引入脚本组件: ```properties // 在需要保存的地方(比如HTTP Sampler后的Post Processor) ${__setProperty(token,${extracted_token},)} // 在任何地方调用该全局变量 ${__property(token,,)} ``` 这种方式同样实现了相同的功能——使某个局部范围内的变量成为整个测试方案里都可见且能被修改的状态量[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值