首页 > 其他分享 >MeterSphere接口测试模块中循环控制器的使用

MeterSphere接口测试模块中循环控制器的使用

时间:2023-01-16 14:00:50浏览次数:49  
标签:控制器 场景 num 行数 循环 模块 MeterSphere CSV

MeterSphere开源持续测试平台的“接口测试”模块具有灵活的接口场景编排设计,模块覆盖了多种接口协议,可自由组合接口自动化测试场景,为接口测试带来方便快捷的体验。

其中,逻辑组件可以支持等待、循环、条件、事务这四种类型的控制器。测试人员在进行接口测试场景设计时,可以使用循环控制器控制多次执行接口测试操作,以减少重复性步骤。本文将为您讲解在MeterSphere平台中使用循环控制器进行次数循环、While循环以及ForEach循环的具体操作方法。

1 前置操作

此场景适用于进行次数循环和While循环。

1. 新增场景变量,类型选择“CSV”选项,上传对应的CSV文件,点击“预览”选项卡(场景中若想使用CSV数据,可直接使用${id} 即可获取字段ID的数据,每次只能获取一条);

MeterSphere接口测试模块中循环控制器的使用_接口测试

2. 新建自定义脚本,选择“python”类型脚本,写入代码来读取CSV数据的行数,再将其存储为“num”变量,以便后续接口引用。

MeterSphere接口测试模块中循环控制器的使用_循环控制器_02

2. 循环控制器

2.1 次数循环

进行次数循环时,循环次数应写明具体数值,此处可引用上一步骤-自定义脚本中存储的CSV行数变量;

MeterSphere接口测试模块中循环控制器的使用_接口测试_03

执行后,响应内容处可看到循环的次数与CSV文件里的行数一致。

MeterSphere接口测试模块中循环控制器的使用_CSV_04

2.2 While循环

进行Whlie循环时,While循环条件可引用场景准备步骤-自定义脚本存储的CSV行数变量,让其大于0进入循环控制器中;

MeterSphere接口测试模块中循环控制器的使用_循环控制器_05

然后在循环控制器中的前/后置脚本对该变量减一后,重新赋值存储;

MeterSphere接口测试模块中循环控制器的使用_CSV_06

执行后,响应内容处同样可看到循环的次数与CSV文件里的行数一致。

MeterSphere接口测试模块中循环控制器的使用_接口测试_07

2.3 ForEach循环

因ForEach循环对上述场景不适用,所以重新新建场景进行演示。

1. 设置场景变量为列表

① 新建场景变量,类型为“列表”,值为多个值;

MeterSphere接口测试模块中循环控制器的使用_CSV_08

② 使用ForEach循环遍历列表ID,打印每个ID的值;

MeterSphere接口测试模块中循环控制器的使用_CSV_09

③ 执行后可看到响应内容处,循环的次数与列表ID的长度一样,且ID值也一个个遍历出来了。

MeterSphere接口测试模块中循环控制器的使用_循环控制器_10

2. JsonPath提取值为列表

① 通过JsonPath提取返回值,勾选“匹配多条”,得到一个groupId数组;

MeterSphere接口测试模块中循环控制器的使用_CSV_11

② 遍历上个接口提取到的groupId数组,并进行打印值;

MeterSphere接口测试模块中循环控制器的使用_CSV_12

③ 执行后的响应内容处,可看到循环数与groudId数组长度一致,且将数组每个值都打印出来了。

MeterSphere接口测试模块中循环控制器的使用_数据_13

以上便是MeterSphere接口测试模块可使用循环控制器进行的三种循环操作介绍,供大家参考使用。

获取CSV行数的Python代码如下:

import sys
sys.path.append("/opt/metersphere/data/python/lib/python2.7/site-packages")


filename=r'/opt/metersphere/data/body/7d1c07da-d11_11.csv'
total = sum(1 for line in open(filename))-1
log.info('-------'+str(total));

vars.putObject("num",total);

循环控制器里请求前后置脚本,改变num值大小的Python代码如下:

n = vars.getObject("num");
num_ = n - 1
log.info("---222----"+str(num_));
vars.putObject("num",num_);

获取CSV行数的BeanShell代码如下:

import java.io.BufferedReader;

import java.io.FileReader;

BufferedReader br=new BufferedReader(new FileReader("/opt/metersphere/data/body/e7228944-541_name.csv"));

String tmpStr="";

int rowCount=0;

while(tmeStr=br.readLine()!=null){
rowCount++;
}

int num = rowCount-1;
vars.putObject("num",num);

log.info("CSV文件数据的行数:"+num);

标签:控制器,场景,num,行数,循环,模块,MeterSphere,CSV
From: https://blog.51cto.com/u_15922911/6010346

相关文章

  • 河北稳控科技振弦采集模块配置工具VMTool生成寄存器值
    河北稳控科技振弦采集模块配置工具VMTool生成寄存器值 生成寄存器值VMXXX有很多按位使用的寄存器,使用VMTool工具可进行方便的设置,当需要知道寄存器的实际值时,可通......
  • 振弦采集模块配置工具VMTool生成寄存器值
    振弦采集模块​配置​工具VMTool生成寄存器值生成寄存器值VMXXX有很多按位使用的寄存器,使用VMTool工具可进行方便的设置,当需要知道寄存器的实际值时,可通过以下两种方......
  • 内网Linux下安装Nginx1.23,添加stream模块实现tcp/udp代理转发
    环境:centos7.6ngx_stream_core_module这个模块在1.9.0版本后将被启用。但是并不会默认安装,需要在编译时通过指定--with-stream参数来激活这个模块,window下并不支持udp......
  • sql模块
                     ......
  • python之pyserial模块
    pyserial模块封装了对串口的访问,兼容各种平台(Windows、Linux、MACOS等)。其支持的特性如下:所有平台基于类的接口相同端口可以通过python来设置支持不同数据长度、停止......
  • 和菜鸟一起学OK6410之ADC模块
    android上跑起来时也比较灵敏了,GPIO模拟的SPI也可以工作了,看了会书,修正了会,回到宿舍也已经9点多了。想想,OK6410上还有个AD模块呢。网上找了找资料,发现还是可以去尝试下可不......
  • 模块的加载机制
             ......
  • ESP12E 与 ESP12F模块主要区别
    转载于https://components101.com/article/major-differences-between-esp12e-and-esp12f  ESP12E和ESP12F是流行的支持WiFi的ESP8266微控制器的两个版本。但是......
  • 振弦采集模块配置工具VMTool的常见功能
    振弦采集模块配置工具VMTool的常见功能 一、实时数据读取当VMTool与模块为连接状态时(4.3.1模块的连接与断开),勾选实时数据区的【自动读取】复选框,VMTool开始自动......
  • 河北稳控科技振弦采集模块配置工具VMTool的常见功能
    河北稳控科技振弦采集模块配置工具VMTool的常见功能一、实时数据读取当VMTool与模块为连接状态时(4.3.1模块的连接与断开),勾选实时数据区的【自动读取】复选框,VMToo......