本项目实现接口自动化的技术选型:Aiohttp+Pytest+Yaml+Excel+Smtplib 。 其中Aiohttp用于发送和处理HTTP协议的请求接口,Pytest作为测试执行器, YAML和Excel文件用于测试数据的管理和测试报告的生成,最后使用Smtplib发送测试报告邮件。
- 采用协程方式发送请求,提高了测试用例执行效率
- 采用统一请求封装,session自动关联,支持多个session之间切换
- 采用关键字驱动设计,测试数据易于维护
- 自动渲染测试用例,自动处理请求中的文件,并能自动提取请求和响应中的内容进行断言
- 项目运行时自动生成日志文件和测试报告,且自动发送测试报告邮件
- Yaml文件可关联Excel文件,用于存储公共测试数据和测试数据
- Yaml及Excel文件中可使用变量和调用Python函数,方便测试用例编写
- 支持使用Python变量和文件变量,增加测试用例的灵活性
- 支持MySQL数据库连接及操作,同时支持生成Mock数据,便于测试用例的编写
📢项目开发环境:win11+python3.10
- 下载项目源码后,在根目录下找到requirements_dev.txt文件,然后通过 pip 工具安装项目运行依赖,执行命令:
pip3 install -r requirements_dev.txt
- 在debug/config/local.yaml文件中配置数据库参数和邮件参数。
- 在debug/db目录中找到user.sql并运行初始化数据库。
- 在debug/flask_app目录中运行api.py启动服务。
- 之后运行main.py,或在Terminal窗口cd到项目根目录后执行命令:
pytest
from common.read.case import read_case
from debug import auto_request
from debug.script.conftest import parametrize
@parametrize(read_case("debug/testcase/method.yaml"))
async def test_get(case):
await auto_request(case)
# method.yaml
- casename: get请求
request:
url: http://127.0.0.1:5000/get
method: GET
params:
foo1: bar1
foo2: bar2
- 如果喜欢ddddpytest,欢迎在GitHub上进行Star。
- 本项目使用过程中遇到问题或一起交流学习欢迎添加我的微信或Telegram 进行沟通。