1 接口自动化测试方式
1.1 接口测试工具
Postman+Newman+Git/SVN+Jenkins (基于Javascript语言)接口自动化
Jmeter+Ant+Git/SVN+Jenkins (基于Java和BeanShell语言)接口自动化
apifox+apifox-cli+jenkins
1.2 基于代码的接口自动化
Python+Requests+Yaml+Pytest+Allure+Logging+热加载+Jenkins持续集成接口自动化
1.3 基于平台的接口自动化
测试开发
2 requests库底层方法调用逻辑
2.1 requests库底层方法
def get(url, params=None, **kwargs)
def post(url, data=None, json=None, **kwargs)
def put(url, data=None, **kwargs)
def delete(url, **kwargs)
#get,post,put,delete是对此方法的封装调用
def request(method, url, **kwargs)
#回话,web项目中从登录到退出就是一个回话,requests.request调用此方法中的reuqest方法(session.request)。
requests.session()
2.2 post请求的传参方式以及对应的请求头
传参方式 | 请求头 Content-Type字段 | 对应参数名 |
文件 | multipart/form-data | files |
表单 | application/x-www-form-urlencoded | data |
文本 | application/json | json |
text/plain | data | |
application/javascript | data | |
text/html | data | |
application/xml | data | |
二进制 | application/octrent-stream | files |
2.3 session中的request方法以及参数用法
def request(
self,
method,#请求方式
url,#请求路径,接口地址
params=None,#get请求传参,在url中的参数
data=None,#post或put请求传参(表单/表格)
headers=None,#请求头
cookies=None,#Cookie信息
files=None,#文件上传
auth=None,#鉴权
timeout=None,#超时处理
allow_redirects=True,#是否允许重定向
proxies=None,#代理
hooks=None,#钩子
stream=None,#文件下载
verify=None,#证书验证
cert=None,#CA证书
json=None,#post请求传参
**kwargs,#可变长度的字典
)
2.4 Response对象 - requests响应结果
res.text 返回文本格式
res.content() 返回bytes字节类型数据
res.json() 返回json数据(字典形式)
res.status_code 返回状态码
res.reason 返回状态信息
res.cookies 返回cookie信息
res.encoding 返回编码格式
res.headers 返回响应头
res.request.*** 返回请求的信息和数据