我们在用Jmeter做性能测试时,一般会涉及到多个线程组。而线程之间或接口之间会对上个参数有依赖性,那么我们将接口中的参数提取出来供其他线程组或接口调用呢
这就需要使用到__setProperty函数,如何使用通过Jmeter的函数助手来使用并获取全局变量呢,以下是详细使用步骤。

提取token

添加一个正则表达式提取器来提取登录接口中返回的token信息
(1)引用名称 token

(2)正则表达式 “token”:"(.+?)"

(3)模板 用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多个正则表达式,则可以是$̲23$等等,表示解析到的第几个值给title。如:11表示解析到的第1个值

(4)匹配数字 0代表随机取值,1代表全部取值,通常情况下填0

(5)缺省值 如果参数没有取得到值,那默认给一个值让它取

设置全局变量

方法一:添加一个BeanShell PreProcessor

方法二:添加一个BeanShell Sampler

打开函数助手使用_setProperty函数,填写要设置的全局变量名称及要将哪个变量设置为全局变量

将函数助手生成的结果复制到BeanShell PreProcessor或者BeanShell Sampler的Script中

使用函数助手获取全局变量

方法一:使用__property函数获取
${__property(token,token,)}

方法二:使用__P函数获取
${__P(token,)}

添加信息头管理器

将获取全局变量的函数添加到信息头管理器作为全局使用

运行查看结果树

运行成功,并成功返回token值

注意:
如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置:


原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

Jmeter将token设置为全局变量并跨线程进行传递参数的更多相关文章

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

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

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

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

  3. Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)

    1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...

  4. Jmeter跨线程组传递参数

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

  5. Jmeter操作之跨线程组传递参数

    思路:将某一线程组内的变量通过“__setProperty”函数设置成jmeter的全局变量,在另一线程组中通过“__P”函数调用即可. 1.添加-后置处理器-BeanShell PostProces ...

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

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

  7. 接口测试工具-Jmeter使用笔记(九:跨线程组传递变量)

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

  8. Jmeter跨线程组传递变量

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

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

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

随机推荐

  1. beta设计和计划

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 Beta设计和计划 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 ...

  2. Form-OCR & CSDNAPP初体验

    项目 内容 课程:北航2020春软件工程 博客园班级博客 作业:阅读并撰写博客回答问题 软件案例分析 我在这个课程的目标是 全面地评价一个软件 这个作业在哪个具体方面帮助我实现目标 明确软件开发过程中 ...

  3. 如何理解PaaS平台,与SaaS、IaaS有什么区别?

    我们经常会看到SaaS.PaaS.IaaS,但总是会摸不着头脑,有的人甚至会以为是恐怖组织的代号.其实,无论是SaaS.PaaS还是IaaS,都代表的是某一种服务,比如SaaS的含义为"软件 ...

  4. 关于ajax的数据传输类型,字符串传输

  5. 匿名函数lambda / map()方法

    lambda一般配合其他方法使用,一般使用在只用过一次就不用的函数,那就没必要特意去定义 lambda能支持的最复杂的语句就是三元运算 例如: lambda x,y: x*y if x < y ...

  6. 屌炸天的3D引擎OpenCASCADE的用法及案例(转载之处:)

    What CASCADE? Open CASCADE(简称OCC)平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一. ...

  7. 4.启动虚拟机 设置CentOS7

    启动虚拟机 CentOS设置 1.点击箭头方向即可启动我们的VMware 2.设置语言 在第一步设置完成后,我们一直等待,即可来到语言设置界面 此处我们设置[中文] 3.设置安装信息 将下面带有[感叹 ...

  8. ES6学习-5 解构赋值(2)对象的解构赋值

    啥也不说,先举个栗子: 1 let { myname, myage } = { myage: 18, myname: "郭郭" }; 2 console.log(myname) / ...

  9. sed常用

    行首添加字符串 # cat a [root@localhost b]# vim a 文件a将每行的第1列添加HEAD [root@localhost b]# sed 's/^/HEAD &/g ...

  10. ft2000安装tigervnc

    apt update apt install tigervnc*vncserver :88 history >>history