是我想简单了。。
啊,这。。。
谢谢大佬,我先去理一下,感觉困扰解开了
因为从 yaml 文件读取出来就是字典格式的,如果是从 excel 读取出来的话,用正则提取倒是没这个问题,我写成:{'id':$id$},读取出来会变成"{'id':$id$}",外面自动加括号;遍历字典的话,我暂时还没想到咋深层遍历
大致的代码是这么实现的,然后就有个小问题
import re
class Global:
id = 3
pwd = 123456
# 这个字符串是读取yaml得到的
string = {'id': '$id$', 'data': {'mobile_phone': 1, 'pwd': '$pwd$'}}
params_list = re.findall(r"\$.*?\$", str(string)) # 用正则取出要替换的列表
print(f'提取出的待替换变量为:{params_list}')
for expr in params_list:
# 取出$$中的值
param_name = re.findall(r'\$(.*?)\$', expr)
for i in param_name:
# 取值并用replace替换
value = getattr(Global, i)
string = str(string).replace(expr, str(value))
# 因为最终是用原始字符串中的双引号替换的,导致原来的'id' 被替换成'3',因为用的是正则替换,所以没有明确的层级关系也没办法用int或eval去转换
print(string)
嗯嗯,我先尝试一下,稍候回复
其实是想面试自动化测试;嗯嗯,我懂了,谢谢您
像现在的这个框架水平,目前面试自动化您觉得可以尝试吗
嗯,懂了,我想要的是灵活性,可配置性;能再问一下,之前你们测试用例存储方式吗,也是 excel 吗?
@ 云中一只猫 嗯嗯,我在 excel 里面新加入一个字段,用来做判断项试一下
@guolong123 您的意思是,在 excel 里面加一个字段,字段下面根据接口的请求头,手动填写 requests 的传参类型(data,json,file) 这些,然后再通过代码获取到传参类型,进行请求吗