jmeter 用一个正则提取器提取多个值的两种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter 用一个正则提取器提取多个值的两种方法相关的知识,希望对你有一定的参考价值。

参考技术A

jmeter 中,用 JSON 提取器,一次提取多个值,这个很多人都会。但是,用正则提取器一次提取多个,是否可以呢?

肯定,很多人都自信满满的说,可以!形如: token":"(.*?)","identity":"(.*?)" 写一个这样的正则表达式,不就是可以提取两个了吗!

是的,这种做法没有错,但是,你发现一个问题吗?你的“ Name of created variable 引用名称” 应该怎么填呢?你是填一个,还是多个,多个你又用什么符号来分隔呢? 软件测试面试宝典

然后,然后你就楞住了,因为你不能用正则提取器,同时把提取的多个值写到对应的变量中,虽然你理想的写了多个变量名称,也用符号分隔了,结果,你用调试取样器查看得时候,你发现,你取的多个值,都在一个变量里面了,而且这个变量带有符号。

什嘛,不能一次提取多个?哪我要用多个,怎么用?

这里,给大家讲两种方法:

方法一: 如果你眼睛比较尖,你可能从上面一张图,已经看到了曙光。在上一张图中,我们又 retoken,iden_g1 和 retoken,iden_g2 看到了吗?他们的值是不是就是你想要的呢?

所以,我们可以在一个正则提取器中,同时提取多个值,多个值时,模板之间不用分隔符号,用一个变量接收,然后在关联使用时,使用变量名称_g1、变量名称_g2...... 依次类推,就可以了。

方法二: 既然用一个变量接收,他会接收全部的提取值,那我就把值拆开。用一个定义的标点符号,拆开成多个值。

写多个正则表达式,用 1 个变量接收,模板之间用 逗号 分隔

用一个 split 函数,进行拆分,放入新的变量中

从调试取样器中,可以看到拆分之后的结果

使用新的变量名称,注意,使用第一个变量,则用 新变量名称_1

最后,请求,在查看结果树中,看到请求的结果,已经使用拆分后的值了。

好了,两种方法都 get 到了吗?

jmeter-正则表达式提取器

说到Jmeter正则表达式提取器的应用,就不得不说到关联。所谓关联,就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。
如下面图中中userId、token在是关联参数,
技术图片
方法一:正则表达式提取器
技术图片
debug sampler
技术图片
可以看到userId、token已被提取;引用写法为:${token},${userId}

方法二:JSON Extractor
技术图片
debug sampler
技术图片
可以看到userId、token已被提取;引用写法为:${token},${userId}












以上是关于jmeter 用一个正则提取器提取多个值的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

jmeter获取响应数据中参数值的常用方式(JSON提取器 正则表达式提取器 XPath提取器 Bean Shell PostProcessor)

Jmeter 正则提取和json提取用法

jmeter后置处理器之Json提取器详解

Jmeter——关联与正则

Jmeter中正则表达式提取器使用详解

jmeter--正则提取json串中一个大括号对象里指定字段值的的另一个字段的值