接口自动化测试时,有时候请求体(json格式)是固定的,每次请求只想替换请求体中的某个key的值,需要遍历并替换调,例如注册接口,每次手机号或者用户名不能重复,那么请求前需要动态替换手机号或者用户名。上代码,举例替换值为空:
class RepalceJsonValue:
"""
替换指定key的value为空
"""
def __init__(self, goal_key):
self.goal_key = goal_key
def _is_dict(self, o):
for key, value in o.items():
if key == self.goal_key:
o[key] = ""
else:
self.get_re(value)
def _is_list(self, o):
for i in o:
self.get_re(i)
def get_re(self, o):
if isinstance(o, dict):
self._is_dict(o)
elif isinstance(o, list):
self._is_list(o)
if __name__ == '__main__':
aa = {
"interface_body_format": {
"a": 1
},
"aaa": 3,
"bbb": [1, 2],
"ccc": [{
"ddd": 4
}]
}
# 替换interface_body_format 的值为空:
rjv = RepalceJsonValue("interface_body_format")
rjv.get_re(aa)
返回结果====>>{'interface_body_format': '', 'aaa': 3, 'bbb': [1, 2], 'ccc': [{'ddd': 4}]}
# 替换ddd 的值为空:
rjv = RepalceJsonValue("ddd")
rjv.get_re(aa)
返回结果====>>{'interface_body_format': {'a': 1}, 'aaa': 3, 'bbb': [1, 2], 'ccc': [{'ddd': ''}]}
完毕~