Jmeter中使用正则表达式提取XML结果中的值做参数化

背景:jmeter中socket请求返回的数据格式为XML,需要做参数化关联,也就是A接口的返回结果做为B接口的请求参数

说明:可以使用XPath Extractor方法或者正则表达式提取器(Regular Expression Extractor)提取,正则表达式的好处就是不管返回数据的位置如何变动,都不影响要取的值,操作起来也方便简单.所以我们用正则表达式来做.

PS:既然要对处理结果做提取,所以都是请求后要做的,固然组件都在[后置处理器]中

附:接口的返回结果,要提取的xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <object name="a">
        <field name="status" value="S"/>
    </object>
    <object name="b">
        <field name="total" value="00000000000000000000"/>
    </object>
    <object name="c">
        <field name="orderId" value="aa"/>
        <field name="accNO" value="bb"/>
        <field name="amount" value="cc"/>
        <field name="respMsg" value="处理成功"/>
    </object>
</root>

1.在A请求中添加后置处理器-正则表达式提取器

正则表达式的一个好处就是不用关心她嵌套了多少个标签,只关注最后要取值的标签就可以

(1)正则表达式说明(.+?):

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。

    +:一次或多次。

    ?:在找到第一个匹配项后停止。

(2)模板说明:

模板:表示使用提取到的第几个值:

$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个

注:正则表达式各个标签直接不允许有空格

2.B请求使用提取出的值

3.如果是提取的值为一个,正则表达式的表示如下

需要注意,模板使用${1},在请求时直接用别名${advance}就可以

至此,我们就提取到xml中的返回值做为其他接口的请求参数了.

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值