记录一次不在意的错误行为分析,场景在构造数据过程中调试一个接口,使用postman 提交表单数据时,能正确返回200,但是通过requests调用时报400
分析步骤:
1.debug调试时,执行requests请求方法这一行报错,错误码为400,初步怀疑参数传入有问题,然后把传参数据格式及类型打印出来是str
2.通过Charles本地抓包,证实确实是参数类型传入错误导致
正确的表单格式数据
3.然后修改传入的数据类型,调试后执行通过。
excel中数据正确写法改成:{"marketId": "A1060922", "shopIds": "A1058439,A1057079"}
代码转换一下参数格式:newData = json.loads(data)
总结:
1.问题根本原因是自己粗心大意,当传参类型要求为表单时,且接口不支持直接传json对象,那么传参的类型必须是dic如果是str必然就报错了
2.读取的参数是从excel中读取的,当时写入excel的数据,是dic形式的str,用了单引号;导致使用json.load方法不生效