【接口自动化】解决接口测试中读取yaml文件,时间格式转换成date、datetime类型问题

在使用pytest进行接口自动化测试时,遇到一个问题:从yaml文件读取的日期参数如2023-06-2000:00:00被自动转换为日期或时间类型,导致接口报错。为避免这种情况,可以采取三种策略:1)在yaml中用引号包围日期字符串;2)使用yaml热加载并按需拼接年月日;3)动态写入yaml,序列化时间为JSON字符串。这些方法能确保日期参数以字符串形式传递。
摘要由CSDN通过智能技术生成

使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值