最近提测一个新的项目-图片系统涉及到我这块的需要测一个图片上传的接口,那么客观稍安勿躁小坑马上来了等你跳,跳之前你并不知道所以先看看跳坑之前的风景吧,数据结果如下:
仔细看红色部分期中一个参数是个json,这也没什么嘛往下走着。。。。在看一个接口请求的示例:
你会发现透传的ctx参数是一个json格式,当时脑袋飘过一朵问号小云彩--可能是小编我少见多怪大神莫藐视小编我,第一次遇见这种奇怪的接口设计,没当回事就按着请求例子来不就OK了,于是请看如下代码片段:
我用的事python 强大的requests模块,省时省力,但是郁闷的事情出现了如下:
打印出来的url有乱码,这样传到后台就是乱码的数据,所以肯定会造成请求失败,通过curl 请求就是正常的,经过一番折腾原来requests模块自动给url 做了encode编码才造成如此现象,解码后恢复正常json串,要不后台改要不我找其他解决办法,后台不能改,所以只能找其他办法更换python请求的api 更换urllib2,urllib2不会主动对url进行编码,如果你想给url编码自己调用:urllib.encode()方法,那么就有了如下代码:
更改后发现json参数可以正常传到后台了,就这样忠于填上这个坑
结论:使用python做接口测试同学如果在遇到参数中是json那就绕行requests模块,有时候看似好模块库反而容易出问题