将token设置为全局变量网上方式方法千千万,但是你就是获取token会失败,不是提示格式错误,就是提示无法获取token,没安装Jmeter的可以查看前两期教程,有详细介绍

在工作当中如果仅仅是一个线程组肯定是无法满足使用需求的,那么我们会使用多个线程组进行工作,这里不得不提及一个名词叫:全局变量 。

一、观察并获取token

1、当我们登陆成功以后进行观察,会发现token的存在,提取token有两种格式(分别是:正则表达式提取,JSON格式提取)根据个人爱好吧,我一般喜欢正则因为平时接触的比较多

2、创建正则提取器,选择生成token的请求--添加-- 后置处理器--正则表达式;

(匹配数字一般为1,博主这里比较懒直接省略不写了,不要问正则为什么这样写,因为这是最最最基本的你们可以直接抄写就好了,实在很好奇可以进入廖雪峰的博客下进行系统学习一下,但是这个模板是固定的就是$1$,其中的1便是获取第一个token值)

3、创建完正则后我们需要校验一下,是否提取成功了,可以创建调试取样器 Debug sampler

(选中线程组--添加--取样器--Debug sampler )

4、查看结果如下图则算是成功了

二、将token设置为全局变量

1、上一步我们讲解的是采用正则的方式提取的token,这一步是将提取的token进行设置为全局变量;首先创建BeanShell后置处理器,路径如下图:

3、打开函数助手,找到_setProperty函数,填写要设置的全局变量名称和要将哪个变量设置为全局变量,直接复制函数助手生成的函数字符串到BeanShell PostProccessor中,也可以BeanShell后置处理器中填写参数:${__setProperty(newtoken,${g_token})};  其中g_token为token提取器中引用的名称,一定要保持一致;

三、调用全局变量token

1、在计划下面进行调用全局变量,${__property(newtoken)} 或 ${__P(newtoken)}   (一定要注意不要马马虎虎的将名称或则格式写错,最容易出错的地方就是这里了,越是简单的地方约容易被大意忽略)  第二行(有些版本不适用,为避免出错可以不用填写)的格式根据需求可以在抓包中有体现,抓包工具大家可以看前面两张的fiddler 或者开发者抓包即可;

总结一下:讲到这里已经就接近尾声了,后面创建的线程组中皆可调用全局的token,如果有画蛇添足的非要在每一个线程组中加一个http请求头管理器也是可以的,但是一定要将http请求头管理器的参数写正确,别给蛇画个半只足就难看了;(目前很多文章都有误导性作用)

Jmeter跨线程组获取token(彻底解决因格式token报错)的更多相关文章

  1. jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测

    一.Jmeter版本 此次示例采用的是apache-jmeter-5.2.1版本 二.设置配置文件使Cookie管理器保存cookie信息. 修改apache-jmeter-5.2.1/bin/jme ...

  2. Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 用过 Jmeter 的同学应该都 ...

  3. jmeter跨线程组传值

    在测试过程中,有时候需要jmeter跨线程组传值,jmeter本身又不具备此功能,那么,又该如何实现呢? 其实,我们可以通过BeanShell去实现. 实现过程如下: 1.线程组A中,使用正则表达式提 ...

  4. Jmeter 跨线程组传递参数 之两种方法

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  5. Jmeter 跨线程组传递参数 之两种方法(转)

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  6. 解决Jmeter跨线程组取参数值难题!(还没试)

    来源 https://mp.weixin.qq.com/s/q7ArxwnX1sOfa9tfHouSBQ 如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦.   那就是j ...

  7. Jmeter跨线程组传递变量

    请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口. 所以我想要把授权操作放在单独的一个线程,业务流放在其他线程. 这就需要我把从授权线程获取的令牌传入业务流线程. 解决 ...

  8. Jmeter跨线程组传参

      我们知道,同一线程组中可以通过“正则表达式提取器”获取其中一个取样器的响应结果中的参数,直接传给线程组中的其他取样器.但其他线程组中的取样器也想使用同样的参数时,无法直接获取.举个例子: 提取“登 ...

  9. Jmeter跨线程组传递参数

    Jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B中被调用的. 但有时候为了方便,可以把不同模块接口放在不同线程组,就涉及不同线程组传参问题,比如 ...

随机推荐

  1. Python入门-程序结构扩展

    deque双端队列 #双端队列,就是生产消费者模式,依赖collections模块 from collections import deque def main(): info = deque((&q ...

  2. Java基础之浅谈集合

    Java基础知识.关于List.Set.Map接口的了解,以及ArrayList.LinkedList.HashSet.TreeSet.HashMap.TreeMap...

  3. HTTP请求头格式和响应格式

    HTTP请求头格式 提示: 回车符 \r 换行符 \n 请求首行分析: 请求方式: GET 和 POST 方式: GET请求:地址栏访问.超链接访问都是get请求方式,get请求方式不安全,地址栏大小 ...

  4. 安卓记账本开发学习day4

    在代码层面,展示出来的界面应该如下图 但是实际运行效果如下图 很明显,"其他"都没有显示出来,经过一点点排查,发现是IncomeFragment.java文件的代码存在错误 @Nu ...

  5. 简单了解AndroidManifest.xml文件

    AndroidManifest.xml:资源清单文件 <?xml version="1.0" encoding="utf-8"?> <mani ...

  6. 【GPLT】 集合相似度(c++)

    题目如下: 这题主要用来练习stl的使用,是一道比较简单的题目 AC代码如下 #include<iostream> #include<cmath> #include<ma ...

  7. Vim 中进行文本替换

    Vim 中进行文本替换 格式 用法 :[range]s/from/to/[flags] tips: [] 表示该内容可选 参数 from 需要替换的字符串(可以是正则表达式) to 替换后的字符串 r ...

  8. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  9. k8s入门之Ingress(七)

    Ingress 的功能其实很容易理解:所谓 Ingress,就是 Service 的"Service",代理不同后端 Service 而设置的负载均衡服务. 一.安装ingress ...

  10. HashSet与TreeSet的区别

    HashSet元素唯一,无序,依靠hashcode(),toString()实现元素的唯一性 TreeSet元素唯一,有序,依靠bTo实现比较,即继承Comparable类并重写compareTo(O ...