Jmeter利用正则表达式提取器提取登录cookie供下一步使用
最近在学Jmeter,遇到需要登录之后才能进行下一步操作的场景,网上查了各位大神的资料,东拼西凑总算是做好满足需求了,写一下经过和步骤吧。
一、正常调用
按正常流程添加线程组、HTTP请求(登录和添加)、HTTP请求默认值、HTTP信息头管理器等,然后跑看看能不能通过。

添加失败,试着在同一个线程组下添加HTTP Cookie 管理器,看看能不能成功:

通过了。但是现在线程数是和循环次数都是1,如果循环次数是1000次,那也登录接口也要调用1000次,影响性能测试结果,这个时候可以把登录单独放到另一个线程组中,然后在添加的接口中调用登录的Cookie。

报401(鉴权失败)了,没法调用上一个线程组登录的Cookie。下一步就看看怎么获取上一个线程组的返回数据,供别的线程组调用。
二、提取登录接口返回的cookie。
1、在登录的HTTP请求下添加正则表达式提取器

2、然后通过页面调用登录的接口,拿到登陆后获取的Cookie和添加需要用到的cookie值
登陆后获取的Cookie:

添加需要用到的cookie值:

3、按下图设置好正则表达式提取器

填写说明:
要检查的响应字段:现在是需要从信息头中获取数据,所以现在选中“信息头”
引用名称:下一个请求要引用的参数名称,如填写logincookie,则可用${logincookie}引用它。
正则表达式:
():括起来的部分就是要提取的。
模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
缺省值:如果参数没有取得到值,那默认给一个值让它取。
这个时候就把正则表达式提取器设置好了,但是经测试,不能跨线程组调用参数,所以还需要在登录HTTP请求下添加BeanShell PostProcessor关于这个组件的介绍可以自行查一下
三、设置跨线程组调用参数
1、在登录HTTP请求下添加BeanShell PostProcessor

2、设置参数如下图所示,填入参数名${logincookie}和脚本${__setProperty(logincookie,${logincookie})}

3、在登录HTTP请求下添加HTTP信息头管理器,加一行,名称填抓包抓到的信息头中的键(Cookie),值填BeanShell PostProcessor中往下传的参数(${__P(变量名)})

4、跑一下请求

已经可以成功添加了。
参考的博文或来源:
Jmeter利用正则表达式提取器提取登录cookie供下一步使用的更多相关文章
- Jmeter通过正则表达式提取器提取响应结果数据
Jmeter进行接口测试常常会运到一个问题:就是第二个请求如何接收上一个请求响应中的参数.比如,现在个学生金币充值的接口,得先调用登录接口然后从返回里面复制一下sign的值,放到cookie里这样才能 ...
- Jmeter接口测试-正则表达式提取器-提取token
在使用Jmeter过程中会有这样的场景, A接口执行后返回json字符串, 这个json中有B接口需要的某一个参数, 那如何来实现呢? 第一步:添加正则表达式 方法非常简单, 这就是我们今天要讲的正则 ...
- jmeter正则表达式提取器提取特定字符串后的全部内容
jmeter进行JDBC请求时,请求后的响应结果在传递给下一个请求使用时,需要用到关联,也在jmeter中,关联通过正则表达式提取器实现. 但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有 ...
- jmeter正则提取器提取指定位置的字符串
1.需求:提取登录后的凭证ticket供系统其他接口调用 2.登录接口返回的格式如下: { "ret_code":0, "ret_msg":"logi ...
- 【转】Jmeter的正则表达式未正确提取数据
在进行脚本调试时,在Apply-Money-Page中需要Save-base中header的id参数,采用正则表达式提取器获取 使用正则表达式提取器,结果无法获取到需要的参数 最后定位是因为[?]是一 ...
- jmeter正则提取器提取一个值或多个值
[安装Dummy插件] 这个插件可以模拟服务器返回,相当于一个mockserver了. 首先安装Dummy,选项--插件管理--可选插件--Dummy. [模拟响应] 添加线程组,在线程组下添加Dum ...
- 记录一次群答问:jmeter正则提取器提取一个及多个值
图截得比较大,浏览器放大倍数看吧^_^ 前几天,在群里被@,咨询这样一个问题:服务器返回:name="tom" value="jerry" 要提取出name ...
- jmeter-json提取器提取的内容含”引号
这时如果直接赋值会报错 解决方法: 1.用vars.get("Object")提取变量的值 2.用代码提取,最后把提取到的Object或Array转为String
- jmeter设置全局变量与正则表达式提取器
接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用 登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取t ...
随机推荐
- Django push: Using Server-Sent Events and WebSocket with Django
http://curella.org/blog/2012/jul/17/django-push-using-server-sent-events-and-websocket/ The goal of ...
- Django中的原子事务相关注意事项
Django中的原子事务支持(transaction.atomic)方式函数装饰器或者with语句,这种方式特别是前者和spring里面的AOP事务支持方式基本等同,当然其实质方式都是原始的try.. ...
- Centos 7安装python3
纯傻瓜式步骤,保证成功. 下面的操作,按照步骤来就可以了,不要在中途cd 到别的文件目录下,要想查看效果可以用 lsj加上对应的目录,不需要切换进去. 首先不管你当前在哪个目录下,输入以下命令. [r ...
- Ocelot中文文档-Websockets
Ocelot额外支持代理websockets.这个功能在问题 212中被提出. 为了是Ocelot代理websocket,你需要做如下事情. 在你的Configure方法中,你要告知应用程序使用Web ...
- 用Maven实现一个protobuf的Java例子
注:试验环境在Mac Idea环境下 1. 介绍Protocol Buffers Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化.反序列化,常用于RP ...
- 爬虫之ssh证书警告错误
错误信息: 错误信息如下: requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_proce ...
- DDD实战进阶第一波(十):开发一般业务的大健康行业直销系统(实现经销商登录仓储与逻辑)
上一篇文章主要讲了经销商注册的仓储和领域逻辑的实现,我们先把应用服务协调完成经销商注册这部分暂停一下,后面文章统一讲. 这篇文章主要讲讲经销商登录的仓储和相关逻辑的实现. 在现代应用程序前后端分离的实 ...
- Mego(05) - Mego Tools使用教程
前言 使用过EntityFramework6的朋友应该都知道EF中的PowerTools这个工具可以帮助初学者或者开发人员快速构建一个EF的数据上下文,并且可以很直观的看到实体之间的关系.不过目前升级 ...
- Centos7搭建hadoop完全分布式
虽然说是完全分布式,但三个节点也都是在一台机器上.拿来练手也只能这样咯,将就下.效果是一样滴.这个我自己都忘了步骤,一起来回顾下吧. 必备知识: Linux基本命令 vim基本命令 准备软件: VMw ...
- SpringCloud实战8-Bus消息总线
好了现在我们接着上一篇的随笔,继续来讲.上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要一个服务一个服务的 ...