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、跑一下请求
已经可以成功添加了。
参考的博文或来源:
最新文章
- cookie学习指南
- 反序列化问题的研究之java篇
- [Jquery]导航菜单效果-纵向
- i++与++i的误解
- AngularJs学习笔记--Guide教程系列文章索引
- POJ2503Babelfish
- 【暑假】[数学]UVa 10375 Choose and divide
- Sass 编译的几种方法
- 统计学习导论:基于R应用——第四章习题
- Mschart绘制图表之X轴为时间的设置方式
- 改变iOS app的icon(iOS10.3)
- Spark SQL 1.3测试
- Portlet开发入门实例
- Selenium 3 没办法启用指定的Firefox Profile
- Ubuntu操作用户账户
- 【Python学习】yield send我就说这么多
- BZOJ2368 : Modern Art Plagiarism 树同构
- linux centos7添加ip黑名单禁止某个ip访问
- Bell(hdu4767+矩阵+中国剩余定理+bell数+Stirling数+欧几里德)
- Android天气预报
热门文章
- python 正则表达式Re
- Python 装饰器(Decorator)
- 【python3】如何建立爬虫代理ip池
- tomcat并发优化之三种接收处理请求方式(BIO、NIO、APR)介绍
- mybatis一对一映射配置详解
- eclipse换了高版本的maven插件后报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project
- onConfigurationChanged方法的使用
- 优雅的玩PHP多进程
- Linux时间子系统之五:低分辨率定时器的原理和实现
- SpringBoot vue