踩坑分享:接口自动化接口传参未生效

问题背景:

如果问题背景类似,可能会有参考价值。

我的接口自动化(pytest框架)用例是用Excel表格来管理,格式如下图所示。

业务背景是一个列表接口,通过请求传参来进行数据的筛选,然后发现我所传的筛选条件并没有生效。

结论:

先上结论,读取Excel的请求数据为以下格式,传参时发生了转义

'{"job_id": "3"}'
使用json.loads(data)
import json

data = '{"job_id": "3"}'
params = json.loads(data)

将其转为以下格式,即解决了这个问题

{"job_id": "3"}

但需要注意,这种解决方式,在传参为空的用例中,参数需要写{},否则会报错影响断言。

大佬们要是有更好的解决方式,评论教教我(认真脸)。

排查过程:

1. 对比相同接口、相同传参,分别使用自动化脚本和postman进行测试,发现我的自动化脚本传参未生效,postman的传参是生效了的。

2. 打印传参未发现异常(其实<class 'str'>已经有问题了)

3. 查询服务器日志,自动化脚本的日志中传参为:

"query":{"\"job_id\":_\"3\"":""}

postman正常请求的传参为:

"query":{"job_id":"3"}

4. 以为是requests库请求的问题,尝试不读取Excel表,直接写入参数,发现是正常的。看来requests请求是没问题的,有问题的还是我这拉胯的代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值