背景
以程序代码的方式实现接口测试,可以处理加解密接口、可以进行复杂业务逻辑处理,可以复杂断言等好处,其实就是灵活。
python 中 requests 库,是基于 urllib,采用 apache2 licensed 开源协议等 http 库,相比与 urllib 库,requests 库更加方便,可以节约我们大量等工作,完全满足 http 测试需求。
安装很简单,只需要 pip install requests 即可。
接口常见等 http 请求方式有:GET, POST, PUT, DELETE, HEAD, OPTIONS。requests 库都可以很好的支持。
1、GET 请求
示例:requests.get(url, params = params)
Params = {“id”:1001}
2、POST 请求
示例:requests.post(url, json, headers)
python 中的字典与 json 格式的数据,虽然外表没区别,但是数据序列化不一样;所以可以将字典通过 json 模块转成 json 字符串,再传到后台。
r = requests.post(url, data = json.dumps(data), headers = headers)
知识点:
data: 字典对象
Json: json 字符串
将字典对象转化为 json 字符串,需要用到 json 模块的 dumps 函数。
3、响应数据
各个请求方法的返回值 response 为 Response 的对象,我们可以从这个对象中获取我们想要的响应信息。假设返回值为 r。
status_code:获取响应状态码,示例:r.status_code
Url: 获取请求 url 地址, 示例:r.url
Encoding: 查看默认请求编码格式或者设置响应编码格式。设置方式:r.encoding = “utf-8”
Headers : 获取服务器响应消息头,示例:r.headers
Cookies: 获取响应 cookies 信息, 示例:r.cookies
Text: 以文本形式解析响应内容。
Content: 以字节码形式解析响应内容。
Json: 以 json 字符串形式解析响应内容
4、Session
在 requests 里,session 对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。
会话能让我们在跨请求时候保持某些参数,比如在同一个 session 实例发出的所有请求之间保持 cookie。
创建 session 对象:session = requests.Session()
得到 session 对象后,就可以调用该对象中的方法发送请求,例如 session.post()。
以上就是用 requests 库发送常见 http 请求的基础知识点,你可以利用这个库轻松的完成 http 协议的接口测试。
当然,你还有很多事要做,譬如测试数据如何管理、测试结果报告如何展示等等,这个留给大家去思考,如下是一个简易版本的接口测试结果报告。