使用pytest做接口自动化测试时,会将接口参数写入到yaml文件中,通过读取yaml文件来实现参数化的方式,但是类似2023-06-20、2023-06-20 00:00:00这种类型的值会自动转成date或者datetime类型之后发送,导致接口报错(如字段类型不正确),因为还是需要保持为字符串类型进行传参。
避免转换成时间格式有以下几种方法:
1、在yaml文件写参数时,添加双引号或单引号
enTime: '2023-06-21 09:00:00'
# 或
enTime: '"2023-06-21 09:00:00"'
2、yaml热加载填入时间参数,区分年月日一个个get(热加载方法单独返回年月日字符串)
startDate: ${get_year()}-${get_month()}-${get_day()}
3、yaml文件是通过动态写入的
先保存时间参数
now = datetime.datetime.now().strftime('%Y-%m-%d 09:00:00')
# return前先进行序列化为json
return json.dumps(now)
生成yaml参数字典时,直接写time
"enTime": time