生活和工作需要小结

2017-07-14   出处: Qtest之道  作/译者:陈景立

python模拟http请求遇到的一个坑

最近提测一个新的项目-图片系统涉及到我这块的需要测一个图片上传的接口,那么客观稍安勿躁小坑马上来了等你跳,跳之前你并不知道所以先看看跳坑之前的风景吧,数据结果如下:

仔细看红色部分期中一个参数是个json,这也没什么嘛往下走着。。。。在看一个接口请求的示例:

你会发现透传的ctx参数是一个json格式,当时脑袋飘过一朵问号小云彩--可能是小编我少见多怪大神莫藐视小编我,第一次遇见这种奇怪的接口设计,没当回事就按着请求例子来不就OK了,于是请看如下代码片段:

我用的事python 强大的requests模块,省时省力,但是郁闷的事情出现了如下:

打印出来的url有乱码,这样传到后台就是乱码的数据,所以肯定会造成请求失败,通过curl 请求就是正常的,经过一番折腾原来requests模块自动给url 做了encode编码才造成如此现象,解码后恢复正常json串,要不后台改要不我找其他解决办法,后台不能改,所以只能找其他办法更换python请求的api 更换urllib2,urllib2不会主动对url进行编码,如果你想给url编码自己调用:urllib.encode()方法,那么就有了如下代码:

更改后发现json参数可以正常传到后台了,就这样忠于填上这个坑


结论:使用python做接口测试同学如果在遇到参数中是json那就绕行requests模块,有时候看似好模块库反而容易出问题


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
278° /2788 人阅读/0 条评论 发表评论

登录 后发表评论