背景:在做接口自动化流程中我们会遇到需要提取上个接口的返回值作为下个接口的传参,在提取值数量不固定的情况下,如何在一个线程让指定接收参数的接口自动循环完所有的传参呢?

解决:添加【循环控制器】指定循环次数,并使用__V函数和__counter计数器函数组合传参即可在【循环控制器】循环完所有的参数。如${__V(name_${__counter(1,)},)}循环3次相当于分别传入${name_1}、${name_2}、${name_3}

接下来我们以下面例子展述,已知:

  • 一次自动化盘点流程需要用到7个接口
  • 其中第4个接口的请求值需要从第3个接口的返回值里提取。第3个接口提取值数量不固定,第4个接口需要依次循环提取的每个参数值
  • 也就是这个线程里第1、2、3、5、6、7接口只需跑一次,而第4个接口根据第3个接口提取n个值而跑n次且每次传值为当前提取值

做法

1、首先我们先处理第3个接口,我提前已经使用json提取器将需要用到的值获取出来了。可看出当前一共获取到3组数据,分别是productCode_1和stockQty_1、productCode_2和stockQty_2、productCode_3和stockQty_3

   

2、接下来我们需要将这3组数据分别传给第4个接口

  • 先添加一个循环控制器,循环次数=${productCode_matchNr}(即获取到几组数据)

  • ▲重点是第4个接口,需要接收3组数据。我的实现方法是使用__V函数__counter函数来完成
  • ${__counter(1,)} 在循环控制器3次后分别=1、2、3
  • ${__V(productCode_${__counter(1,)},)} 循环3次相当于分别传入${productCode_1}、${productCode_2}、${productCode_3}。另外一个参数stockQty同理传入${__V(stockQty_${__counter(1,)},)}

3、上面设置完后,执行整个线程查看运行结果。我们看到第1、2、3、5、6、7个接口只跑了一次,而第4个接口跑了3次且参数均不一致如下

取第4个接口第3次循环的数据进行验证,循环结果正确

  • ${__counter(1,)} =3
  • ${__V(stockQty_${__counter(1,)},)}  =stockQty_3=20.0
  • ${__BeanShell(${__V(stockQty_${__counter(1,)},)}+${__counter(1,)},)}  =${__BeanShell(20.0+${__counter(1,)},)}=${__BeanShell(20.0+3,)}=23.0
  • ${__V(productCode_${__counter(1,)},)}  =productCode_3=8

   

至此我们已实现开篇我们想要的循环指定接口并接收不同参数值的效果

Jmeter循环指定接口并接收不同参数值的更多相关文章

  1. 『动善时』JMeter基础 — 52、使用JMeter测试Dubbo接口

    目录 1.Dubbo介绍 2.准备测试Dubbo接口的环境 3.Dubbo Sample界面详解 4.Dubbo Sample组件的使用 (1)测试计划内包含的元件 (2)使用zookeeper协议请 ...

  2. 学习总结——JMeter做http接口功能测试

    JMeter对各种类型接口的测试 默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59):本地配好了JMeter ...

  3. JMeter接口测试-JMeter+ant实现接口自动化测试

    前言 小伙伴们,用python做接口自动化是不是写代码比较繁琐,而且没有python代码基础的小伙伴根本无从下手对吧!今天我们来学习一下如何使用JMeter工具实现接口自动化测试. 1.安装JDK,配 ...

  4. jmeter中测试接口

    本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明: 1.jmeter简介 2.jmeter怎么做接口测试 3.jmeter进行参数化的几种形式 4.jmeter中处理乱码方法 5.jm ...

  5. Java -- 获取指定接口的所有实现类或获取指定类的所有继承类

    Class : ClassUtil package pri.lime.main; import java.io.File; import java.io.IOException; import jav ...

  6. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  7. 使用Jmeter测试thrift接口

    术语描述 jmeter:一款性能压力测试工具,支持多种协议,java .http 等,但是不支持thrift thrift:跨语言的RPC调用框架,提供编译器,可以将thrift接口生成不同语言的接口 ...

  8. 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口

    目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...

  9. 『动善时』JMeter基础 — 50、使用JMeter测试WebSocket接口

    目录 1.什么是WebSocket接口 2.为什么需要WebSocket 3.测试WebService接口前的准备 4.WebSocket Sampler组件界面详解 5.使用JMeter测试WebS ...

  10. 『动善时』JMeter基础 — 51、使用JMeter测试WebService接口

    目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...

随机推荐

  1. 《剑指offer - 题目1》

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  2. NOIP模拟81

    T1 语言 解题思路 模拟即可,对于一个合法的句子直接判断每一个前缀和每一个后缀是否是合法的名词词组. 然后枚举动词的位置判断前后两段是否合法就好了. code #include<bits/st ...

  3. itest work 开源接口测试&敏捷测试管理平台 9.5.0 GA_u1,优化及修复关键 BUG

    (一)itest work 简介 itest work (爱测试)  一站式工作站让测试变得简单.敏捷,"好用.好看,好敏捷" ,是itest wrok 追求的目标.itest w ...

  4. kubernetes——资源管理

    Kubernetes 资源管理 介绍 kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的最小管理单元是pod而不是容器,所以只能将 ...

  5. Vue Router 4与路由管理实战

    title: Vue Router 4与路由管理实战 date: 2024/6/7 updated: 2024/6/7 excerpt: 这篇文章介绍了如何在Vue.js应用中利用Vue Router ...

  6. 加入域 " " 时出现了以下错误

    加入域 " " 时出现了以下错误: 因为文件共享不安全,所以你不能连接到文件共享.此共享需要过时的 SMB1 协议,而此协议是不安全的,可能会使你的系统遭受攻击. 你的系统需要 S ...

  7. 暴走漫画系列之高仿淘宝收货地址(附demo)

    引语: 我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug. 这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱. 然后接着调试程序.他可能生意不好,就无聊的看看我在干什么,然后过了 ...

  8. 开箱即用的Live2d

    安装 npm i @tomiaa/live2d 代码 <template> <div ref="live2dContentRef" id="live2d ...

  9. SpringBoot 过滤器更改 Request body ,并实现数据解密

    客户端.服务端网络通信,为了安全,会对报文数据进行加解密操作. 在SpringBoot项目中,最好使用参考AOP思想,加解密与Controller业务逻辑解耦,互不影响. 以解密为例:需要在reque ...

  10. Sql Server中Cross Apply关键字的使用

    Sql Server中Cross Apply关键字的使用 前言 在写一个业务的时候,有1列数据如下: 车牌号 湘A00001/湘G00001 湘A00002/湘G00002 湘A00003/湘G000 ...