Jmeter正则提取请求响应数据

前言

在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookietokenAuthorization授权码 会返回在 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正则提取的内容,提取其他数据,如 tokenAuthorization 等的方法与上面类似,大家可以进行实践。

原文地址:https://www.cnblogs.com/wintest/p/11297827.html

时间: 2024-10-07 20:36:17

Jmeter正则提取请求响应数据的相关文章

Fiddler-006-修改HTTP请求响应数据

在进行 App 测试时,经常需要修改请求参数,以获得不同的显示效果,以查看相应的页面显示处理.例如:电商购物App中商品都有好几种状态(在售.缺货.暂不销售.下 架等).同时,一般这几种状态均为同一个按钮对应的多种情况,那么测试商品详情时,需要测试按钮在商品不同状态下的显示效果,就需要构建不同状态的商品, 若是多人测试不同的状态下的操作,那么就不能使用同一件商品同时进行测试,因为测试时,需要修改商品的状态,那么多人测试时会有影响.此时,测试页面显示 的朋友,则可以通过修改获取商品详情的HTTP请

ASP.NET Web API 记录请求响应数据到日志的一个方法

原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个方法 REST风格的服务架构已经成为越来越多人的选择,之前我用过WCF来实现REST服务,WCF是一个很强大的框架,干这点小事有点太沉重的感觉.后来微软又推出了一个ASP.NET Web API,专门用来处理一些基本的Http服务,即灵活又简单,推荐大家都看看. 今天这篇文章是使用ASP.NET W

jmeter察看结果树—响应数据中的中文显示乱码的问题

jmeter察看结果树-响应数据中的中文显示乱码的问题: 打开文件:jmeter\bin\jmeter.properties 原始内容: 默认编码为:ISO-8859-1 # The encoding to be used if none is provided (default ISO-8859-1) #sampleresult.default.encoding=ISO-8859-1 修改为: sampleresult.default.encoding=utf-8 修改配置后,要重启jmete

Jmeter正则提取_实现前后衔接请求

正则提取是Jmeter常用的方法之一,下面就正则提取进行简单介绍. 如图所示,我这里有2个请求,下面我们是实现下第一个请求返回的"pushId"返回结果作为第二个请求的请求字段之一. 首先我们新建一个正则提取器到第一个请求中. 然后解释下正则提取各个配置的含义: 引用名称:整个正则的名称,主要作用是方便后面引用. 正则表达式:括号中表示的是要提取的部分,其中  .*? 是非贪婪匹配 模板:如果有多个正则匹配.即就是多个(.*?)时,取具体哪一个,$1$表示取第一个匹配 匹配数字:正则提

jmeter正则提取器提取指定位置的字符串

1.需求:提取登录后的凭证ticket供系统其他接口调用 2.登录接口返回的格式如下: { "ret_code":0, "ret_msg":"login success", "data":"http://IP:port/authredirect?ticket=eyJhbGciOiJIUzUxMiJ9.eyJzY29wZXMiOjIxNzksImlzcyI6ImZ1cWluZ0B0cmF3ZS5jbiIsImlhdCI

jmeter察看结果树-响应数据乱码

打开jmeter下的目录:\bin\jmeter.properties文件,搜索"encoding"关键字,找到如下配置: # The encoding to be used if none is provided (defaultISO-8859-1) #sampleresult.default.encoding=ISO-8859-1 将#sampleresult.default.encoding=ISO-8859-1注释删掉,把ISO-8859-1改为utf-8,即 sampler

jmeter查看结果树响应数据乱码问题解决办法

1.添加后置处理器中的BeanShell PostProcessor 2.在处理中输入prev.setDataEncoding("UTF-8"); 原文地址:https://www.cnblogs.com/swlip/p/12089229.html

Jmeter如何提取响应头部的JSESSIONID

近期有柠檬班的学生找到华华,问了一个问题,就是利用Jmeter做接口测试的时候,如何提取头部的JSESSIONID然后传递到下一个请求,继续完成当前用户的请求. 其实,关于这个问题有三种种解决方法: 1)从响应数据里面提取JSESSIONID,点击链接可以查看https://www.cnblogs.com/liulinghua90/p/5320290.html 2)如果响应数据里面没有返回JSESSIONID,那么就可以保持cookie,点击链接可以查看:https://www.cnblogs.

jmeter ---模拟http请求/发送gzip数据

jmeter中get请求gzip数据的方法: 在jmeter线程组中添加“http信息头管理器”,并添加名称:Accept-Encoding值: gzip,deflate注:HTTP信息头Accept-Encoding 是客户端发给服务器,声明客户端支持的编码类型 验证服务器是否返回了gzip格式数据: 1. 线程组中添加一个“查看结果树”监听器 2.运行测试后,在监听器取样器结果标签页查看http服务器的响应头: Content-Encoding: gzipVary: Accept-Encod