思考:接口自动化怎么解决用例之间的依赖
方式一:设置全局变量globals
方式二:.使用正则表达式和反射机制(高逼格)
场景:在Excel表中做的参数化数据,需要把值读取成功后做If条件判断,如果设置的条件等于Excel表中做的参数化标识符,就替换别的数据。But,Eecel表中100个参数化的数据,就要做100个判断,再替换数据,这样就很鸡肋。SO,正则和反射就闪亮登场了~~~
将excel表中的测试用例参数化后,可以有两种方式进行替换:a和b
a.利用字典,根据key把value取出来,判断是否等于excel表中做的标识,进行覆盖替换
s='{"mobilephone":"${admin_user}","pwd":"${admin_pwd}"}'
admin_user="13707796666"
admin_pwd="123456"
方式一:引入Json模块,把字符串转换成字典,根据Key去取值判断
import json
dict_1=json.loads(s)
if dict_1["mobilephone"]=="${admin_user}":
dict_1["mobilephone"]=admin_user
if dict_1["pwd"]=="${admin_pwd}":
dict_1["pwd"]=admin_pwd
print(dict_1)
方式二:利用python内置函数find()函数和replace()函数进行查找和替换;
字符串存在,find()函数就返回索引位置,字符串不存在,find()函数就返回-1
if s.find("${admin_user}")> -1:
s=s.replace("${admin_user}",admin_user)#字符串是不能做修改的,要重新赋值才能显示最新
if s.find("${admin_pwd}")>-1:
s=s.replace("${admin_pwd}",admin_pwd)
print(s)
{'pwd': '123456', 'mobilephone': '13707796666'}
{"mobilephone":"13707796666","pwd":"123456"}
b.利用正则表达式:根据key,动态的去取值