当需要获取场景变量中列表类型变量时,可以将该变量定义常量,使用,逗号隔开,然后再前置脚本中使用vars.get()获取该变量内容,然后使用分割函数split()对字符串做分割,它会返回一个list,后面就可以直接使用这个list了。
如
fcate = vars.get("fcate")
fcate = fcate.split(',')
lfcate = []
for i in fcate:
r = i.split(' ')
r_s = r[0] + ' ' + r[1]
lfcate.append(r_s)
这种输出的lfcate就是fcate分割后的list。
2.当需要访问一个list中的参数,然后再使用这个参数作为变量名称获取该变量的内容时,可以使用list方式添加。但是list中对应的变量名称不用加""引号,当脚本直接获取某一元素时,就能直接获取该变量的内容了。
如
ll = [scateC, scateD, scateE, scateF]
scateC = "11,2,3,45,56"
scateD = "12,2,3,45,56"
scateE = "13,2,3,45,56"
scateF = "14,2,3,45,56"
s = ll[1]
lscate = s.split(',')
rann = random.randint(0, len(lscate)-1)
sscate = lscate[rann]
还可以使用另外一种方式,再后置脚本中直接使用${id_ALL}的方式直接访问list变量全部元素,若只访问一个元素可以使用${id_n}方式,无论变量是自己定义的还是json获取的,都支持。
后置脚本中支持直接使用${id_ALL}这种方式get变量的。
messageSourse=["1","1","1","1","0","0"]
id=["10","11","12","13","50","51"]
ids = ${id_ALL}
for id in ids:
log.info(str(id))
3.如果需要随机获取可以random模块
import random
rannum = random.randint(0, 4)
4.断言规则中,当一个字段可能存在某几个固定值时,断言可以设置为
[A|B]
5.当接口返回json数据后,我们需要通过一个变量获取另外一个变量时,可以再采用一下办法。现在接口后置操作中添加对这两个变量的获取,勾上匹配多条,将index数字变成*,然后在添加一个后置脚本,处理.
后置脚本内容:
ids = ${id_ALL}
messageSourses = ${messageSourse_ALL}
for i in range(0,len(messageSourses)):
if messageSourses[i] == 0:
sid = str(ids[i])
log.info(str(messageSourses[i]))
log.info(str(ids[i]))
break
vars.put("sid", sid)