在接口测试中或者说在网络爬虫中,urllib2库是必须要掌握的一个库,当然还有优秀的requests库,今天重点来说urllib2库在接口测试中的应用。urllib2定义了很多的函数和类,这些函数和类能够帮助我们在复杂情况下获取URLS的内容。这些情况包含了对headers的添加,cookie的处理,代理,超时,鉴权等的处理。如果想详细的了解urllib2库,建议到官方查看,官方地址:https://docs.python.org/2/library/urllib2.html。查看urllib2库的详细的帮助文档,见执行的代码:
#!/usr/bin/env python
#-*-coding:utf-8-*-
import urllib2
print type(help(urllib2))
首先我们来看一个完整的请求和响应内容,然后通过urllib2的库来实现这样的一个过程,我们访问http://m.cyw.com/切换城市,见抓取的信息,见截图:
见客户端发送请求后,服务端响应回复的内容截图:
在如上的截图中,我们知道了请求的URL,方法以及请求的参数,下来我们使用urllib2的库来实现一个完整的请求过程和响应内容,见实现的代码:
调用如上的函数后,见执行的结果:
http的状态码: 200
响应内容: {"status":true,"homeUrl":"/xian"}
在接口的测试中,客户端向服务端发起请求的时候,需要添加header这样服务端,否则服务端会拒绝客户端的请求,那么在urllib2库中,如何添加header了,见如下的案例代码:
发送一个request的请求,然后请求资源,在该实例中,如果没有headers,发送请求,会显示404的错误信息,见不带header发送请求后服务端的响应内容:
见执行函数后的错误信息,显示为:
File "C:Python27lib甥汲楬b2.py