jmeter正则提取器提取一个及多个值

内容分享3周前发布
1 0 0

前几天,在微信群里咨询这样一个问题:服务器返回:name=”tom” value=”jerry” ,要提取出name的值和value的值。

实则,我觉得这个需求是不明确的,到底是name和value提取出来拼接为一个字符串呢?还是分别保存name和value的值?实则我都想忽略这个问题了,但是觉得这还是比较重大且基础的一个知识点,也比较简单。既然我说简单,那就一起跟着我的思路来操作一遍吧,我也当回顾练手了。前提是需要安装jmeter,参考:https://jmeter.apache.org/

安装Dummy插件

这个插件可以模拟服务器返回,相当于一个mockserver了。第一安装Dummy,选项–插件管理–可选插件–Dummy Sampler。

jmeter正则提取器提取一个及多个值

勾选后,点击右下方开始安装,安装完成后会自动重启jmeter。

jmeter正则提取器提取一个及多个值

模拟响应

添加线程组,在线程组下添加Dummy取样器(在Dummy取样器的响应数据中填入模拟返回数据)、查看结果树监听器,在Dummy下添加正则表达式提取器、调试后置处理程序(用于查看提取结果的)。

jmeter正则提取器提取一个及多个值

正则基础

参考:https://m.runoob.com/regexp/

. 匹配除“
”之外的任何单个字符。要匹配包括“
”在内的任何字符,请使用像“[sS]”的模式。

* 匹配前面的子表达式(也可以是一个字符)任意词。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于o{0,}。

+ 匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。

? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。

组合:

.*具有贪婪的性质,匹配到不能匹配为止,最大匹配原则。

+或*后跟?表明非贪婪匹配,即尽可能少的匹配,最小匹配原则。

.*? 表明在能匹配成功的前提下尽可能少的匹配,最小匹配原则。

name和value提取为一个字符串

字符串保存到name_value

jmeter正则提取器提取一个及多个值

运行结果

jmeter正则提取器提取一个及多个值

也可以用其它字符拼接,列如-,即如果模板写为:$1$-$2$,结果就是:name_value=tom-jerry

name和value分别保存

name

jmeter正则提取器提取一个及多个值

value

jmeter正则提取器提取一个及多个值

运行结果

jmeter正则提取器提取一个及多个值

ok,就是这么简单,你觉得呢?欢迎交流和留言。

PS:以上内容仅供参考,如有错误,欢迎指正

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...