jmeter学习记录(5)JMeter获取上一个请求接口的全部返回值作为下一个请求接口的header,正则表达式如何取值?

测试接口的过程中遇到这个么问题,下一个接口header中的一个参数是上一个接口的返回值,所以就需要用正则表达式取出这个值,放到所需接口中。

这本来是个有点简单的问题,正则表达式取值,然后引用变量就得了呗,之前也都是这么干的,正则表达式嘛,传说中的(.*?)解决一切。

不过这次的取值不同于往常,之前都是从一堆返回值中取出某一个参数对应的值作为变量引用到其他接口,这次呢,接口的返回值只有一个,我是要把这个值用正则表达式取出来,传说中的(.*?)解决一切的办法不好用了,经过请教同事+尝试,终于搞定了,说答案:
正则表达式为:(.*) 或者 .*

下图的三种方式来取值,接口均能跑通~
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果上一个接口返回的长度是不定的,您可以使用JMeter正则表达式提取器或JSON提取器来提取值,并且使用BeanShell或JSR223前处理器将其添加到另一个中。以下是一些步骤,可以帮助您实现这一点: 1. 在上一个接口的响应中,找到您想要提取的的模式或路径。例如,如果响应是JSON格式,您可以使用JSON Extractor来提取值。如果响应是文本格式,您可以使用正则表达式提取器来提取值。 2. 在下一个接口请求中,使用`${__BeanShell(vars.get("variableName") + "additionalValue")}`的形式,将变量和另一个相加。例如,如果您想将变量"token"与"1234"相加,您可以使用`${__BeanShell(vars.get("token") + "1234")}`将其插入到下一个接口请求参数中。 3. 添加一个BeanShell或JSR223 PreProcessor到下一个接口请求中,并使用以下代码将结果存储在一个新的变量中: ``` String value1 = vars.get("variableName"); String value2 = "additionalValue"; String newValue = value2; Pattern pattern = Pattern.compile("your_regex_pattern_here"); Matcher matcher = pattern.matcher(value1); while(matcher.find()) { newValue += matcher.group(); } vars.put("newVariableName", newValue); ``` 在上述代码中,将"value1"替换为您从上一个接口响应中提取的变量名称,将"value2"替换为您想要将其添加到提取的中的其他,将"your_regex_pattern_here"替换为您要匹配的正则表达式。将"newVariableName"替换为您想要将结果存储的新变量名称。 4. 运行测试并验证是否成功将上一个接口返回与另一个相加,并将其作为下一个接口请求参数。 希望这能帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值