项目说明
本项目在实现过程中,把整个项目拆分成请求方法封装、HTTP接口封装、关键字封装、测试用例等模块。
首先利用Python把HTTP接口封装成Python接口,接着把这些Python接口组装成一个个的关键字,再把关键字组装成测试用例,而测试数据则通过YAML文件进行统一管理,然后再通过Pytest测试执行器来运行这些脚本,并结合Allure输出测试报告。
当然,如果感兴趣的话,还可以再对接口自动化进行Jenkins持续集成。
GitHub项目源码地址: https://github.com/wintests/pytestDemo
项目结构
- api ====>> 接口封装层,如封装HTTP接口为Python接口
- common ====>> 各种工具类
- core ====>> requests请求方法封装、关键字返回结果类
- config ====>> 配置文件
- data ====>> 测试数据文件管理
- operation ====>> 关键字封装层,如把多个Python接口封装为关键字
- pytest.ini ====>> pytest配置文件
- requirements.txt ====>> 相关依赖包文件
- testcases ====>> 测试用例
请求方法封装
在 core/rest_client.py 文件中,对 Requests 库下一些常见的请求方法进行了简单封装,以便调用起来更加方便。
class RestClient(): def __init__(self, api_root_url): self.api_root_url = api_root_url self.session = requests.session() def get(self, url, **kwargs): return self.request(url, "GET", **kwargs) def post(self, url, data=None, json=None, **kwargs): return self.request(url, "POST", data, json, **kwargs) def put(self, url, data=None, **kwargs): return self.request(url, "PUT", data, **kwargs) def delete(self, url, **kwargs): return self.request(url, "DELETE", **kwargs) def patch(self, url, data=None, **kwargs): return self.request(url, "PATCH&#