MeterSphere 各个场景数组/列表使用差异对比
  ytXF8ujKKYXO 2023年11月02日 21 0



场景变量中列表

接口脚本中存放为变量的数组

数据库按列存储数据

数据库结果存储数据

提取数组

csv行数据

下标起始

1

1

1

0

1

1

ForEach循环

不可

不可

不可

不可

次数循环

不可

不可

while循环

不可

不可

不可

不可

不可

获取长度

不支持

vars.getObject("array").length

${var_#}

脚本:vars.getObject("result").size()

${name_matchNr}

脚本实现

获取全部值

不支持

Arrays.toString(vars.getObject("array")))

循环获取

脚本:List share=vars.getObject("data");

${name_ALL}

jemter函数:${__FileToString(/opt/metersphere/data/json/test.csv,utf-8

补充用法:

1、获取csv文件行长度

获取 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);

获取 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);

2、数据库查询数据取值进行参数化

①按结果存储后,采用__BeanShell函数获取值,其中index是通过添加计数器count获取的;

${__BeanShell(vars.getObject("result").get(${__intSum(${index},-1)}).get("account"))}

按结果存储后,获取第一行的count字段value值:${__BeanShell(vars.getObject("result").get(0)}).get("account"))}

②按列存储后,采用__V函数拼接

${__V(account _${index})}

注意:

存放数组变量需要使用vars.putObject(),vars.put()只能存放字符串;

3、变量类型说明

场景变量或环境变量设置的变量存的是什么类型,取的就是什么类型

vars.putObject后${xxx}也是存的是什么类型,取的就是什么类型

接口提取参数,提取值类型和原值一致,不会自动转为字符串,无需转换

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
ytXF8ujKKYXO
最新推荐 更多