话不多说 直接开撸

上图可以看出,有两个请求,其中第二个请求返回了登录超时,结合第一个登录接口来看,这个是需要header请求内容的也就是 token;当然设置一个token又怎么可能难得倒我们,无非就是在HTTP Header Manager中添加一个键值对而已;但是同学们,有没有想过如果项目中所有的接口都需要,你就粘贴复制一百次吗?如果另一个线程组需要,你就重新配置一次登录接口吗?当然我们肯定不会这么做,那么下面咱们就根据这两个问号来解答这个问题!!!


单个线程组内变量的调用

右键点击"user_login"  →  add  →  Post Processors(后置处理器)  →  Regular Expression Extractior(正则表达式提取器)

  • Name of created variable: 用户引用变量名
  • Regular Expression:正则表达式
  • Temolate:模板 $1$ 表示取n次
  • Match No(0 for Random) 0表示随机,1表示取第一个值
  • Default Value:缺省值,没有时用此值

以取值token为例



然后我们在下一个请求中的HTTP Header Manager 中添加一个键值对,引用时格式为${token},此时我们再看就可以了;

跨线程组调用变量

下图可以看出,咱们又增加了一个activity_share的接口,但是因为我们没有携带token的原因,又登录超时了,而此时我们就不能使用 Regular Expression 的方法来解决此问题了,此时我们又需要两个新的组件;

  • 右键点击"user_login"  →  add  →  Post Processors  →  BeanShell PostProcessor;
  • 右键点击"activity_share"  →  add  →  Pre Processors(前置处理器)  →  BeanShell PreProcessor; 如下图



然后咱们在 Post Processors 的script处输入

// 获取token值
String token = vars.get("token");
// 把token值上传
props.put("token", token);

既然有了上传肯定有人接收,最后在 Pre Processors 的 script 处输入

// 接收 token
String token = props.get("token");

一定注意引用格式${__P(token,)}

02 - Jmeter4.x正则表达式以及跨线程使用变量的更多相关文章

  1. JMeter跨线程,怎么定义全局变量,跨线程使用变量?

    JMeter跨线程时,怎么定义全局变量,跨线程使用此变量? 通过函数助手,获取到设置变量的语法脚本 2.通过Bean shell Sampler取样器,定义全局变量 3.定义好全局变量,可以调用,调用 ...

  2. Jmeter 将正则表达式提取的参数传给全局(跨线程组使用变量)

    一.使用正则表达式提取sessionId 1.在测试计划(跨线程组使用变量)--> 线程组(登录)--> 添加HTTP请求(登录接口) (1)创建测试计划: 勾选独立运行每个线程组(例如在 ...

  3. jmeter跨线程组传值

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

  4. Jmeter跨线程组传递参数

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

  5. 实现Winform 跨线程安全访问UI控件

    在多线程操作WinForm窗体上的控件时,出现“线程间操作无效:从不是创建控件XXXX的线程访问它”,那是因为默认情况下,在Windows应用程序中,.NET Framework不允许在一个线程中直接 ...

  6. jmeter多用户登录跨线程组操作传值

    项目需求: 需要登录两个用户A.B,用户A操作完后会通知B,然后B再操作,B操作完结束或者再通知A. 实现思路: 1. 设置两个线程组Ⅰ.Ⅱ,组Ⅰ添加cookie管理器,里面添加用户A的操作:组Ⅱ添加 ...

  7. jmeter全局变量配置:将token运用到全局(跨线程组使用变量)

    请注意元器件的执行顺序: 请将提取token的配置原件放在设置全局变量的配置元器件前面(本来是一个超级马虎的人,真是俗称“方脑壳”啊) 1.获取登录后的token(提取可以用json path Ext ...

  8. Jmeter跨线程组传参

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

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

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

随机推荐

  1. asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用

    原文:https://www.cnblogs.com/Hackerman/p/3857630.html 首先我们来看一下<% %>的使用 在aspx的页面中只能使用服务器控件和一般的控件, ...

  2. java 企业网站源码模版 屏幕自适应 有前后台 springmvc SSM 生成静态化引擎

    前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问 ...

  3. 实现单选框点击label标记中的文字也能选中

    实例: <label for="man"> <input type="radio" value="男" name=&quo ...

  4. git 和码云的上传文件代码操作

    Git与Github的连接与使用 一 安装git软件 1.git介绍 ''' git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.​ 分布式相比于集中式的最大区别在于开发 ...

  5. Linux性能优化从入门到实战:03 CPU篇:CPU上下文切换

      linux操作系统是将CPU轮流分配给任务,分时执行的.而每次执行任务时,CPU需要知道CPU寄存器(CPU内置的内存)和程序计数器PC(CPU正在执行指令和下一条指令的位置)值,这些值是CPU执 ...

  6. python基础--5字典

    #字典#dict#基本结构info={ "k1":'v1' #键值对 ,"k2":"v2"} #字典的value可以是任何值# info={ ...

  7. sort 文本排序

    1.命令功能 sort 将输入的文件内容按照指定的规则排序,然后将排序的内容输出. 2. 语法格式 sort  option  file 参数说明 参数 参数说明 -b 忽略每行开头的空格 -n 根据 ...

  8. 装饰器模式-Decerator

    一.定义 装饰器模式又叫做包装模式(Wrapper).装饰器模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 在以下情况下应该使用装饰器模式: 1.需要扩展一个类的功能,或给一个类增 ...

  9. 剖析 Vue.js 内部运行机制 (1)

    1. new Vue() 之后. Vue 会调用 _init 函数进行初始化,也就是这里的 init 过程,它会初始化生命周 期.事件. props. methods. data. computed ...

  10. RMQ Fanout

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11795256.html RMQ Fanout Project Directory Maven Depe ...