pytest + requests 搭建接口自动化框架及流程
接口自动化脚本
接口自动化是是可以完全贴合 整个自动化测试框架的
可以结合 pytest 以及 unittest 进行接口框架的编写
接口自动化测试体现流程
项目页面 - 接口文档 - 接口用例 - python脚本 - pytest框架 - 用例执行 - 测试报告 - 结果分析 - jenkins集成
搭建测试框架的思路
核心技术:request发起请求,yaml作为配置,Excel写入用例,数据驱动结合pytest对用例管理,
git管理代码,jenkins持续集成,或者是docker容器
先对代码封装
import requests
import json
import pytest
class Test_Case:
def test_home_page(self):
# 确定url
url = 'http://mp-meiduo-python.itheima.net/'
# 发起请求
res = requests.get(url=url)
assert res.status_code == 200
def test_login(self):
# 登录url
url = 'http://mp-meiduo-python.itheima.net/login/'
# 传入请求头
data = {
'username': 'admin',
'pwd': 'admin'
}
# 如果请求类型 为json 就需要转码
# data = json.dumps(data)
res = requests.post(url=url, data=data)
assert res.status_code == 200
if __name__ == '__main__':
# 执行指定接口测试用例文件 或生产测试报告
pytest.main(['-s','test.py','--html=my_case.html'])
结合数据驱动
class Test_Case:
@pytest.mark.parametrize('url',[
('http://mp-meiduo-python.itheima.net/')
])
def test_home_page(self,url):
res = requests.get(url=url)
assert res.status_code == 200
@pytest.mark.parametrize('url,data',[
('http://mp-meiduo-python.itheima.net/login/',{'username': 'admin',
'pwd': 'admin'})
])
def test_login(self,url,data):
url = url
data =data
# data = json.dumps(data)
res = requests.post(url=url, data=data)
assert res.status_code == 200
if __name__ == '__main__':
pytest.main(['-sv','test.py','--html=my_case.html'])