最近在学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跨线程组调用变量

Jmeter利用正则表达式提取器提取登录cookie供下一步使用的更多相关文章

  1. Jmeter通过正则表达式提取器提取响应结果数据

    Jmeter进行接口测试常常会运到一个问题:就是第二个请求如何接收上一个请求响应中的参数.比如,现在个学生金币充值的接口,得先调用登录接口然后从返回里面复制一下sign的值,放到cookie里这样才能 ...

  2. Jmeter接口测试-正则表达式提取器-提取token

    在使用Jmeter过程中会有这样的场景, A接口执行后返回json字符串, 这个json中有B接口需要的某一个参数, 那如何来实现呢? 第一步:添加正则表达式 方法非常简单, 这就是我们今天要讲的正则 ...

  3. jmeter正则表达式提取器提取特定字符串后的全部内容

    jmeter进行JDBC请求时,请求后的响应结果在传递给下一个请求使用时,需要用到关联,也在jmeter中,关联通过正则表达式提取器实现. 但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有 ...

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

    1.需求:提取登录后的凭证ticket供系统其他接口调用 2.登录接口返回的格式如下: { "ret_code":0, "ret_msg":"logi ...

  5. 【转】Jmeter的正则表达式未正确提取数据

    在进行脚本调试时,在Apply-Money-Page中需要Save-base中header的id参数,采用正则表达式提取器获取 使用正则表达式提取器,结果无法获取到需要的参数 最后定位是因为[?]是一 ...

  6. jmeter正则提取器提取一个值或多个值

    [安装Dummy插件] 这个插件可以模拟服务器返回,相当于一个mockserver了. 首先安装Dummy,选项--插件管理--可选插件--Dummy. [模拟响应] 添加线程组,在线程组下添加Dum ...

  7. 记录一次群答问:jmeter正则提取器提取一个及多个值

    图截得比较大,浏览器放大倍数看吧^_^ 前几天,在群里被@,咨询这样一个问题:服务器返回:name="tom"  value="jerry"  要提取出name ...

  8. jmeter-json提取器提取的内容含”引号

    这时如果直接赋值会报错  解决方法: 1.用vars.get("Object")提取变量的值 2.用代码提取,最后把提取到的Object或Array转为String

  9. jmeter设置全局变量与正则表达式提取器

    接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用 登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取t ...

随机推荐

  1. Ruby中如何复制对象 (deep clone)(转载)

    Ruby中如何复制对象 (deep clone) 用Ruby复制一个对象(object)也许没有你想像的那么容易. 今天我google了半天, 做个总结吧. 先从最简单的开始, b = a 是复制吗? ...

  2. 安装vmware tool时出错

    背景: 我想要在win10系统和vmware的ubuntu之间实现磁盘共享,从而实现文件共享.百度到可以通过安装vmware tools实现,所以着手安装vmware tools 问题: 安装vmwa ...

  3. Node笔记四

    异步操作 -Node采用chrome v8 引擎处理javascript脚本 --v8最大特点就是单线程运行,一次只能运行一个任务 -Node大量采用异步操作 --任务不是马上执行,而是插在任务队列的 ...

  4. Naive RNN vs LSTM vs GRU

    0 Recurrent Neural Network 1 Naive RNN 2 LSTM peephole Naive RNN vs LSTM 记忆更新部分的操作,Naive RNN为乘法,LSTM ...

  5. 重温《STL源码剖析》笔记 第三章

    源码之前,了无秘密. --侯杰 第三章:迭代器概念与traits编程技法 迭代器是一种smart pointer auto_Ptr 是一个用来包装原生指针(native pointer)的对象,声明狼 ...

  6. 终于解决文件格式问题 unix格式

    关于这个问题,今天终于找到方法  file-setting下 左侧code style  line separator下拉选择unix就可以了 http://www.cnblogs.com/sunfa ...

  7. 原生js实现canvas气泡冒泡效果

    说明: 本文章主要分为ES5和ES6两个版本 ES5版本是早期版本,后面用ES6重写优化的,建议使用ES6版本. 1, 原生js实现canvas气泡冒泡效果的插件,api丰富,使用简单2, 只需引入J ...

  8. Hadoop平台基本组成

    1.Hadoop系统运行于一个由普通商用服务器组成的计算集群上,能提供大规模分布式数据存储资源的同时,也提供了大规模的并行化计算资源. 2.Hadoop生态系统 3.MapReduce并行计算框架 M ...

  9. PAT1070:Mooncake

    1070. Mooncake (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Mooncake is ...

  10. 爬虫-Python爬虫常用库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...