使用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
本文介绍在使用pytest进行接口自动化测试时如何避免yaml文件中的日期被错误地转换为date或datetime类型。提供了三种有效的方法来确保时间参数作为字符串传递,包括在yaml文件中使用引号、采用热加载方式动态获取时间及通过序列化为json格式保存。
1716

被折叠的 条评论
为什么被折叠?



