jmeter中下一接口依赖上一接口的参数,上一个接口存在分页时,如何在下一接口循环读取上一接口的数据?

问题背景:

  工作中性能测试存在接口数据依赖,B接口依赖A接口的数据,希望提取到A接口的数据,传入到B接口,但是A接口存在分页的情况。

  如何保证A接口返回的数据未知,且每次从A接口传给B接口的数据不重复呢?

  问题如下:

 

 

问题思考及推演:

  1、首选解决分页的问题,当存在分页功能时。A接口返回的数据量是根据每页显示条数决定的。

  对于第一个问题:第一反应是通过beanshell脚本计算出传入的页数以及每页开始的记录是第多少条。

  String page = String.valueOf(${num1}/25+1);//计算页数,通过计数器num1记录每次循环的次数,然后除以每页显示条数+1获得页数。

  String start = String.valueOf(${num1}/25*25);//计算分页后的起始记录是第多少条。

  vars.put("page",page);将结果返回给jmeter。

  vars.put("start",start);

  当解决一个问题后,以为大功告成,结果运行时发现:分页后,每页获取到的数据后缀都是从1-25,这样导致每次取到的数据都是重复的

  为了解决这个问题,想到使用两个计数器,一个控制分页一个控制分页后重置计数器使后面页数取到的数据不重复。

  

 

   做好这些后,再次调试,发现取到的数据在第26条的时候出现重复的设备编码,此时就需要解决

  2、解决分页后,如何保证从A接口返回的数据传到B接口都不重复。

 

 

  

 

 

结果:

  

 

 

  

相关文章

Jmeter:Authenticationcredentialswerenotprovided上次在使...
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:...
jmeter默认语言设置: 1、临时设置:进入options--ChooseLa...
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加...
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了...
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent...