场景变量中列表 |
接口脚本中存放为变量的数组 |
数据库按列存储数据 |
数据库结果存储数据 |
提取数组 |
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 代码:
|
获取 csv 行数的 beanshell 代码:
|
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}也是存的是什么类型,取的就是什么类型
接口提取参数,提取值类型和原值一致,不会自动转为字符串,无需转换