一、接口测试框架
接口练习地址:https://httpbin.testing-studio.com/
1.1、测试框架基本能力
- 项目管理:pip、virtualenv
- 用例编号:pytest
- 领域能力:app、web、http
- 执行调度:pytest、pycharm、shell、jenkins
- 测试报告:allure2
1.2、HTTP测试能力
- 请求方法构造:get、post、put、delete、head。。。
- 请求体构造:form、json、xml、binary
- 响应结果分析:status code、response body、json path、xpath
1.3、Requests框架
- 功能全面:http/https支持全面
- 使用简单:简单易用、不用关心底层细节
- 定制性高:借助于hook机制完成通用处理
复杂数据解析
数据保存:将复杂的xml或者json请求体保存到文件模板中 数据处理:
- 使用mustache、freemaker等工具解析
- 简单的字符串替换
- 使用json xml api进行结构化解析
数据生成:输出最终结果
1.4、模板技术mustache
pip install pystache
import pystache
pystache.render(
'Hi, {{person}}!',
{'person': 'cjw'}
)
>>> Hi, cjw!
1.5、结构化响应断言 JSON XML
json path断言
pip install jsonpath
from jsonpath import jsonpath
def test_assert_json(self):
r = requests.get(self.url)
assert r.status_code == 200
assert r.json()['category_list']['categories'][0]['name'] == '开源项目'
assert jsonpath(r.json(), '$..name')[0] == '开源项目'
1.6、hamcrest 断言体系
一般用于复杂的断言
pip install PyHamcrest
from hamcrest import *
def test_hamcrest(self):
r = requests.get(self.url)
assert_that(jsonpath(r.json(), '$..name')[0], equal_to('开源项目'))
1.7、schema校验
pip install jsonschema
1.8、schema自动校验
- 每次运行的时候自动保存当前的schema
- 下次运行对比上次的schema如果发现变更就报错
- saveSchema + diffSchema
二、header cookie 处理
2.1、Cookie简介
Cookie的使用场景
在接口测试过程中,很多情况下,需要发送的请求附带cookies,才会得到正常的响应的结果。所以使用python+requests进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie。
传递Cookie的两种方式
- 通过请求头信息传递
- 通过请求的关键字参数cookies传递
2.2、认证体系
2.2.1、http basic
基本认证:是允许http用户代理在请求时,提供用户名和密码的一种方式
GET /private/index.html HTTP/1.0
Host: localhost
Authorization: Basic QWxhzGRpbjpvcGVuIHNlc2FtZQ==
在自动化测试的过程中,可以使用requests库中的auth参数传递认证信息,通过requests.auth 包中的HTTPBasicAuth类构造认证信息。
|