JMeter接口测试-跨线程组取参数值的两种方法
前言
如果你工作中已经在用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接口测试-跨线程组取参数值的两种方法的更多相关文章
- 【柠檬班】史上最简单的Jmeter跨线程组取参数值的两种办法(不写代码)【原创】
如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦,哪就是jmeter的变量值不能跨线程组传递. 看,官方就已经给出了解释.这个不是jmeter的缺陷,这是jmeter ...
- Jmeter 跨线程组传递参数 之两种方法
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- Jmeter 跨线程组传递参数 之两种方法(转)
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- 解决Jmeter跨线程组取参数值难题!(还没试)
来源 https://mp.weixin.qq.com/s/q7ArxwnX1sOfa9tfHouSBQ 如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦. 那就是j ...
- Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 用过 Jmeter 的同学应该都 ...
- Jmeter接口测试——跨线程组调用参数(token为例)
昨天学会了动态获取token,今天测试接口时希望能够实现跨线程调用token值. 实现原理: jmeter本身的“__setProperty”函数可以把某参数的值设置成jmeter本身的内置属性,而j ...
- Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)
1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...
- 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别
一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...
- jmeter之跨线程组共享cookies
jmeter在一个线程组里,可以把登录接口放在上面,再添加一个cookies管理器元件,这样下一个接口就可以携带登录信息.在不同线程组里其实也可以共享cookies 目录 1.方法 2.应用 1.方法 ...
随机推荐
- 一个基于RabbitMQ的可复用的事务消息方案
前提 分布式事务是微服务实践中一个比较棘手的问题,在笔者所实施的微服务实践方案中,都采用了折中或者规避强一致性的方案.参考Ebay多年前提出的本地消息表方案,基于RabbitMQ和MySQL(JDBC ...
- day02_数据类型转换、运算符、方法入门
day02_数据类型转换.运算符.方法入门 数据类型 基本数据类型 四类八种 整数型 (取值范围) byte(-128~127) short(-32768~32767) int(一般默认)(-21亿~ ...
- Shiro身份验证及授权(二)
一.Shiro 身份验证 身份验证的步骤: 收集用户身份 / 凭证,即如用户名 / 密码: 调用 Subject.login 进行登录,如果失败将得到相应的 AuthenticationExcepti ...
- Educational Codeforces Round 80 (Rated for Div. 2)部分题解
A. Deadline 题目链接 题目大意 给你\(n,d\)两个数,问是否存在\(x\)使得\(x+\frac{d}{x+1}\leq n\),其中\(\frac{d}{x+1}\)向上取整. 解题 ...
- jdk和dubbo的SPI机制
前言:开闭原则一直是软件开发领域中所追求的,开闭原则中的"开"是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的,“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代 ...
- SpringBoot整合ActiveMQ和开启持久化
一.点对点 1.提供者目录展示 2.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> &l ...
- RC振荡电路
RC振荡电路,由电阻R和电容C构成的适用于产生低频信号的电路 1.原理---简介 RC振荡电路,采用RC选频网络构成,适用于低频振荡,一般用于产生1Hz~1MHz(fo=1/2πRC)的低频信号.对于 ...
- python pip使用报错: Fatal error in launcher: Unable to create process using '"c:\python27\python.exe" "C:\Python27\Scripts\pip.exe" '
在一个系统中,如果同时存在python2和python3,在cmd.exe程序下执行pip.pip2或者pip3均会报错. 如何解决: 如果是在python3环境下,使用pip安装扩展库,可以使用以下 ...
- tensorflow feed_dict()
import tensorflow as tf a=tf.Variable(100) b=tf.Variable(200) c=tf.Variable(300) update1=tf.assign(c ...
- JVM垃圾回收详解
通常,我们在写java程序的时候,似乎很少关注内存分配和垃圾回收的问题.因为,这部分工作,JVM已经帮我们自动实现了. 这样看起来,好像很美好,但是任何事情都有两面性.虽然JVM会自动的进行垃圾回收, ...