MeterSphere接口测试 JSON 提取数组及引用的高级用法
1、自定义脚本中,设置变量number时,用vars.put(“variable_name”, “variable_value”),一直设置失败 原因:vars.put方法只能用于字符串类型,非字符串类型要用vars.getObject和vars.putObject。第二步:添加forEach循环,在循环中写自定义脚本,添加断言判断AttributeTypeNam数组的每个值是否存在于特定的数组中
遇到的业务场景:在metersphere中,接口返回了字段属性AttributeTypeName,需要将所有字段的该属性值提取出来,再判断属性值是否正确
方案:用jsonPath将所有AttributeTypeNam提取成一个数组,结合foreach循环,判断数组的每个值是否存在于特定的数组中
第一步:提取AttributeTypeNam
第二步:添加forEach循环,在循环中写自定义脚本,添加断言判断AttributeTypeNam数组的每个值是否存在于特定的数组中
# 特定的字段类型,放在一个list中
lst = ['decimal', 'text', 'int', 'nvarchar','uniqueidentifier','picklist',]
# 定义变量,若最后number=1,值存在于lst中,字段类型正确,=2时,不正确
number = 1
if a in lst:
# 如果存在,则number不变
pass
else:
# 如果不存在,则修改number的值
number = 2
vars.putObject("number", number)
第三步:在forEach循环中,添加断言 number=1时,字段类型存在于lst中,类型正确,否则不正确
遇到的坑:
1、自定义脚本中,设置变量number时,用vars.put(“variable_name”, “variable_value”),一直设置失败 原因:vars.put方法只能用于字符串类型,非字符串类型要用vars.getObject和vars.putObject
2、ForEach控制器循环引用数组中的值,用vars.put获取变量无效 原因:直接引用就行,例如${n}
其他高级用法可参考metersphere官方文档:kb.fit2cloud.com/?p=265
更多推荐
所有评论(0)