最近在学Jmeter,遇到需要登录之后才能进行下一步操作的场景,网上查了各位大神的资料,东拼西凑总算是做好满足需求了,写一下经过和步骤吧。

一、正常调用

按正常流程添加线程组、HTTP请求(登录和添加)、HTTP请求默认值、HTTP信息头管理器等,然后跑看看能不能通过。

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

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

报401(鉴权失败)了,没法调用上一个线程组登录的Cookie。下一步就看看怎么获取上一个线程组的返回数据,供别的线程组调用。

二、提取登录接口返回的cookie。

1、在登录的HTTP请求下添加正则表达式提取器

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

登陆后获取的Cookie:

添加需要用到的cookie值:

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

填写说明:

要检查的响应字段:现在是需要从信息头中获取数据,所以现在选中“信息头”

引用名称:下一个请求要引用的参数名称,如填写logincookie,则可用${logincookie}引用它。

正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。
    +:一次或多次。
    ?:在找到第一个匹配项后停止。
    这里用到的是Cookie后面的值,所以只需要拿到登录接口返回的cookie中SESSIONID=E19055FDC13C1677B05AAE6C736A4A6E的值就好了

模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$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关联,正则表达式提取器使用

Jmeter跨线程组调用变量

最新文章

  1. cookie学习指南
  2. 反序列化问题的研究之java篇
  3. [Jquery]导航菜单效果-纵向
  4. i++与++i的误解
  5. AngularJs学习笔记--Guide教程系列文章索引
  6. POJ2503Babelfish
  7. 【暑假】[数学]UVa 10375 Choose and divide
  8. Sass 编译的几种方法
  9. 统计学习导论:基于R应用——第四章习题
  10. Mschart绘制图表之X轴为时间的设置方式
  11. 改变iOS app的icon(iOS10.3)
  12. Spark SQL 1.3测试
  13. Portlet开发入门实例
  14. Selenium 3 没办法启用指定的Firefox Profile
  15. Ubuntu操作用户账户
  16. 【Python学习】yield send我就说这么多
  17. BZOJ2368 : Modern Art Plagiarism 树同构
  18. linux centos7添加ip黑名单禁止某个ip访问
  19. Bell(hdu4767+矩阵+中国剩余定理+bell数+Stirling数+欧几里德)
  20. Android天气预报

热门文章

  1. python 正则表达式Re
  2. Python 装饰器(Decorator)
  3. 【python3】如何建立爬虫代理ip池
  4. tomcat并发优化之三种接收处理请求方式(BIO、NIO、APR)介绍
  5. mybatis一对一映射配置详解
  6. eclipse换了高版本的maven插件后报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project
  7. onConfigurationChanged方法的使用
  8. 优雅的玩PHP多进程
  9. Linux时间子系统之五:低分辨率定时器的原理和实现
  10. SpringBoot vue