前言

如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦。那就是jmeter的变量值不能跨线程组传递。如果变量在开始测试之前已经确定了,我们可以用参数化关联就可以实现。

但是如果值时动态生成,每循环一次,值就变化一次,那么怎么办呢?今天我给大家讲解两种。

方法一:自定义属性法

思路:jmeter中,属性是全局的,是可以动态设置的;而变量是独属于每个线程的

第一步:我们在jmeter中,添加两个线程组,在第一个线程组中,调用一个接口,提取你想要的值存储到一个变量中

第二步:在第一个线程组中,添加一个Beanshell后置处理器。然后再打开函数助手对话框(Function Helper Dialog),选择__setProperty()函数,表达式第一个值输入将要存放的属性名称(英文),

第二个值输入你在第二步中定义的变量名称,生成函数,把函数写到BeanShell后置处理器中。

第三步:在第二个线程组中,添加一个‘用户参数’,添加变量(Add variable)。设置变量名称,再次打开函数助手,选择__P函数,在函数的第一个value值文本框中输入${第三步设置属性名称},生成函数,复制函数,关闭弹窗,把它粘贴到添加的变量的值文本框中。

第四步:在第二个线程组中,接口参数使用定义的变量${变量名称}

注:需要在测试计划勾选独立运行每个线程组,如果想要设置多个属性,可以在第三步的时候,粘贴多个函数,修改函数中属性名称和变量名称,每个函数之间用英文';'分开。

这样,就实现了跨线程组之间传递参数。

方法二:文件转接法

思路:一个线程组运行结果,存储到文件,另一个线程组,通过csv读取文件,然后再提取文件中需要的值,作为变量输入

第一步:在jmeter中,添加两个线程组,在第一个线程组中,调用接口,然后添加监视器->保存响应到文件,设置保存文件的路径和文件名前缀

第二步:在第二个线程组中,添加一个csv数据文件设置(csv set data config)。文件名设置为第二步中,设置的保存文件路;变量名称自行定义;分隔符设置为'\t'

第三步:添加正则表达式提取器(或json提取器),apply to 选择'Jmeter variable Name to use',然后输入csv读取文件设置的变量名;

第四步:在第二个线程组中,添加接口,使用正则提取器中的变量名称,至此,文件转接法完成。

JMeter接口测试-跨线程组取参数值的两种方法的更多相关文章

  1. 【柠檬班】史上最简单的Jmeter跨线程组取参数值的两种办法(不写代码)【原创】

    如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦,哪就是jmeter的变量值不能跨线程组传递.   看,官方就已经给出了解释.这个不是jmeter的缺陷,这是jmeter ...

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

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

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

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

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

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

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

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

  6. Jmeter接口测试——跨线程组调用参数(token为例)

    昨天学会了动态获取token,今天测试接口时希望能够实现跨线程调用token值. 实现原理: jmeter本身的“__setProperty”函数可以把某参数的值设置成jmeter本身的内置属性,而j ...

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

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

  8. 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

    一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...

  9. jmeter之跨线程组共享cookies

    jmeter在一个线程组里,可以把登录接口放在上面,再添加一个cookies管理器元件,这样下一个接口就可以携带登录信息.在不同线程组里其实也可以共享cookies 目录 1.方法 2.应用 1.方法 ...

随机推荐

  1. Linux防火墙之iptables入门

    一.防火墙的概念 什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略:事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更 ...

  2. MySQL5.6数据导入MySQL5.7报错:ERROR 1031 (HY000)

    一.故障现象 今天将一个在MySQL5.7上的数据导入到MySQL5.6里面去,默认存储引擎都是InnoDB,导入报错如下: [root@oratest52 data]# mysql -uroot - ...

  3. jQuery使用ajax向node后台发送对象、数组参数

    引言 最近在使用jq,做一些小demo,但是突然发现jq使用ajax像后台(node)传递一个对象参数,但是后台却接收不了. 原因 后面了解到.jq会将一个对象解析成obj[key]: value这样 ...

  4. sockaddr与sockaddr_in的关系

    WIN7+VS2013 sockaddr // // Structure used to store most addresses. // typedef struct sockaddr { #if ...

  5. CCF_ 201509-3_模板生成系统

    又是一道考验细心和耐心的题,不知道哪里出问题了,一直只有90分 = =! #include<cstdio> #include<iostream> #include<cst ...

  6. LeetCode 681. Next Closest Time 最近时刻 / LintCode 862. 下一个最近的时间 (C++/Java)

    题目: 给定一个"HH:MM"格式的时间,重复使用这些数字,返回下一个最近的时间.每个数字可以被重复使用任意次. 保证输入的时间都是有效的.例如,"01:34" ...

  7. 动态主机配置协议-DHCP

    一.DHCP 概述 当局域网中有大量的PC时.如果我们逐个为每台PC去手动配置IP.那这就是一个吃力也未必讨好的办法 累死你 而DHCP 刚好可以解决这个问题.DHCP全称(动态主机配置协议).使用的 ...

  8. node.js+express+mongoose实现用户增删查改案例

    node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...

  9. 无线网络WPA加密算法基础

    2013-11-13 23:08 (分类:网络安全) 对无线没什么认识,总听说有人蹭网,还有卖蹭网器的,于是补充一下知识. 无线加密有两类:WEP WAP,目前采用WEP加密的非常少了,WEP应该只是 ...

  10. mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it"

    mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it" 现 ...