专业编程基础技术教程

网站首页 > 基础教程 正文

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

ccvgpt 2025-03-30 14:39:38 基础教程 4 ℃

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

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

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

安装Dummy插件

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

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

模拟响应

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

正则基础

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

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

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

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

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

组合:

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

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

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

name和value提取为一个字符串

字符串保存到name_value

运行结果

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

name和value分别保存

name

value

运行结果

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

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

最近发表
标签列表