Jmeter正则提取请求响应数据
前言
在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookie 或 token 或 Authorization授权码 会返回在 Response headers(响应头)中,这时我们便需要从中进行提取,以供其他接口使用。
今天我们主要学习下,如何在Jmeter中通过正则提取响应数据中 Response headers 的数据。
总的设置界面如下:

发送请求,获取响应数据
首先,设置一个HTTP请求,如下:

接着,设置一个察看结果树,然后执行,得到响应数据,下图中的cookie即我们需要提取的数据:

正则提取响应数据
接下来,我们便设置一个正则提取器(用于提取出cookie),另外再设置一个调试后置处理程序(用于查看提取结果)

说明:
1.引用名称:即变量名,后续请求中可以通过 ${引用名称} 来调用
2.正则表达式:按实际情况填写
3.模板:$$表示需要哪个正则表达式获取的值,1代表第一个,-1代表全部,0代表随机
4.匹配数字:1代表第一个,-1代表全部,0代表随机
5.缺省值:如果正则未匹配到,就会使用缺省值
正则说明:
. 表示除“\r\n”之外的任意字符
* 表示匹配前面的子表达式任意次
+ 表示匹配前面的子表达式1次或多次
? 表示匹配前面的子表达式0次或1次
.*:贪婪匹配原则,即匹配到不能匹配为止
.*?:非贪婪匹配,即在匹配成功的情况下尽可能少的匹配
实例:存在字符串 7adbcfgfbesw ,要匹配7和b之间的字符
匹配1:使用 .* ,7开始之后,遇到第一个b不结束,继续找下一个b,直到不能匹配,即匹配到 adbcfgf
匹配2:使用 .*? ,7开始之后,遇到第一个b就结束了,即匹配到 ad

查看提取结果

以上就是本次的提取结果,在这里,如果需在后续请求使用,可通过 ${response_data} 来关联调用。
可能遇到的问题
假如,我们需提取 Set-Cookie 里的所有内容。此时,如果依然使用 .*? ,就会发现提取是不成功的,如下:



要解决这个问题也很简单,我们修改正则表达式,使用 .* 贪婪匹配原则既可以。


好了,以上就是通过Jmeter正则提取的内容,提取其他数据,如 token 、 Authorization 等的方法与上面类似,大家可以进行实践。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!