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

解决:添加【循环控制器】指定循环次数,并使用__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. 震惊!docker镜像还有这些知识,你都知道吗?----镜像(二)

    镜像查看 查看镜像 [root@hmm-docker ~]# docker images REPOSITORY#镜像仓库 TAG #标签 IMAGE ID#镜像id CREATED #创建时间 SIZ ...

  2. xv6 磁盘中断流程和启动时调度流程

    首发公号:Rand_cs 本文讲述 xv6 中的一些细节流程,还有对之前文中遗留的问题做一些补充说明,主要有以下几个问题: 一次完整的磁盘中断流程 进入调度器后的详细流程 sched 函数中的条件判断 ...

  3. 小米 红米 MIUI 重新打开(开启)蓝牙耳机电量弹窗

    原本关闭了下拉通知栏,显示耳机电量的窗口.想重新开开启. 解决方法: 1.确保小爱同学开了通知权限. 2.在蓝牙-高级设置里-开启"小米快连" 3.手机是解锁状态(非锁屏),耳机需 ...

  4. redis锁定商品解决并发售卖问题 RedisUtil工具类

    redis锁定商品解决并发售卖问题 RedisUtil工具类 redis数据类型介绍: //伪代码,基本思路 //1.出redis,每次在选定商品之后,先检查redis是否已经锁定该商品,避免超卖.S ...

  5. nomp矿池源码详解

    1 项目简介 Node Open Mining Portal(简称NOMP)是一个由Node.js编写的高效.可扩展的加密货币挖矿池软件,专为经验丰富的系统管理员和开发者设计.它包含了Stratum挖 ...

  6. spark高级分析2的数据集地址

    第二章 数据分析 wget https://archive.ics.uci.edu/ml/machine-learning-databases/00210/donation.zip 第三章   音乐推 ...

  7. Operational Property Graphs到底是个啥?

    Operational Property Graphs,中文通常译为"操作属性图". 作为23ai中被官方highlight出的新特性之一,我们先看下官方的原文描述: Operat ...

  8. 如何免费在 arm 官网上下载合适的手册

    背景 有时候搞底层配置的时候(尤其是uboot),需要查阅文档. 这里介绍如何在arm 官网进行查找下载,这样就可以不用去 CSDN 了. 实际上CSDN上的一些文档就是这样下载下来二次收费的,强烈谴 ...

  9. Linux 进程运行状态

    背景: 以下有关的知识点是在多进程拷贝的时候,执行了sync导致卡死导致的. Linux进程状态:R (TASK_RUNNING),可执行状态.只有在该状态的进程才可能在CPU上运行.而同一时刻可能有 ...

  10. 3.8折钜惠,瑞芯微RK3568J国产工业评估板“限时折扣”!