pytest-yaml-fei
1. 项目概述
pytest-yaml-fei 是一个基于上海悠悠的 pytest-yaml-yoyo 框架的二次开发项目,
它集成了 pytest、yaml、allure、request 和 logging 等模块,旨在实现零代码开发接口和接口自动化测试。
用户只需编写 yaml 用例文件,即可快速实现自动化测试。
2. 项目特点
2.1 零代码开发
- 零代码:用户无需编写复杂的 Python 代码,只需编写 yaml 用例文件即可实现自动化测试。
- 易于上手:对于非开发人员或测试人员来说,降低了学习成本和技术门槛。
2.2 集成多模块
- pytest:强大的测试框架,支持多种测试方式和断言。
- yaml:简洁易读的数据序列化格式,适合编写测试用例。
- allure:生成美观的测试报告,方便团队沟通和问题追踪。
- request:用于发送 HTTP 请求,支持多种请求方法和参数。
- logging:记录测试过程中的日志信息,便于问题排查。
- Jinja2:模板引擎,支持在 yaml 文件中使用变量和表达式。
- faker:生成测试数据,支持生成多种测试数据。
- requests-toolbelt:用于处理复杂的 HTTP 请求,如文件上传、表单提交等。
- DingtalkChatbot:钉钉机器人,支持测试结果和 allure 报告地址的自动通知。
2.3 功能丰富
- 接口请求:支持 GET、POST、PUT、DELETE 等多种 HTTP 请求方法。
- 接口关联:支持多个接口之间的参数关联和数据传递。
- 接口断言:支持对响应状态码、响应体等进行断言。
- 用例分层机制:API和用例层,便于管理和维护。
- 自定义函数:yaml 中支持自定义函数调用。
- 数据驱动测试:支持通过 yaml 文件传递测试数据,实现参数化测试。
- 日志记录:记录测试过程中的详细信息,便于问题排查和追溯。
- 测试报告:生成详细的allure测试报告,包括测试用例执行情况、断言结果等。
- DB操作:支持 mysql 数据库增删改查。
- 结果通知:支持钉钉机器人通知测试结果和 allure 报告地址。
2.4 维护方便
- 项目配置:支持通过配置文件对项目进行全局配置,如 base_url、全局 token 等。
- 多环境支持:支持多套环境切换,方便在不同环境下进行测试。
- 持续集成:支持 CLI 执行,适配持续集成 CI/CD 流程。
3. 使用场景
- 接口测试:适用于各种 Web 接口的自动化测试。
- 性能测试:结合其他性能测试工具,可进行接口的性能测试。
- 持续集成:集成到 CI/CD 流程中,实现自动化测试和部署。
4. 快速开始
4.1 环境准备
- Python 版本:最低版本要求 Python 3.8 或以上版本。
- pip 安装:通过 pip 安装 pytest-yaml-fei 插件。
pip install pytest-yaml-fei
4.2 创建项目
使用 --start-project 命令快速创建项目 demo 结构,并自动创建几个简单的用例。
pytest --start-project
4.3 编写 yaml 用例
在项目的 testcases 目录下编写 yaml 用例文件,如 test_login.yml。
config:
name: login case
base_url: http://127.0.0.1:8000
variables:
username: "test123"
password: "123456"
teststeps:
- name: step login1
request:
method: POST
url: /login
json:
username: ${username}
password: ${password}
validate:
- eq: [status_code, 200]
- eq: [body.json.message, login success]
4.4 执行用例
在项目根目录下执行 pytest 命令,运行 yaml 用例文件。
pytest test_login.yml
4.5 allure报告
4.5.1 allure 环境准备
- allure 命令行工具是需要依赖jdk 环境,可以参考java安装配置
- allure 是一个命令行工具,可以参考allure安装配置
4.5.2 生成 allure 报告
- allure 是一个命令行工具,可以参考这里安装配置 https://blog.csdn.net/weixin_44719099/article/details/143978683
在用例所在的目录执行命令, --alluredir 是指定报告生成的目录
pytest --alluredir ./report
打开allure 报告执行命令
allure serve ./report
5. 结论
pytest-yaml-fei 是一个功能强大、易于上手、维护方便的接口自动化测试框架。通过零代码开发的方式,
降低了测试人员的学习成本和技术门槛,提高了测试效率和测试质量。同时,该框架还支持多模块集成、功能丰富、
使用场景广泛,是接口自动化测试的理想选择。
6. 致谢
非常感谢上海悠悠的开源框架,感谢悠悠的开源精神。
7. 贡献与反馈
欢迎贡献代码和提出建议!如有任何问题或建议,请提交 Issue 或 Pull Request。
8. 开源协议
本项目遵循 MIT 许可证,详情请参阅 LICENSE 文件。
希望这个项目能够帮助到您进行接口自动化测试!如果您有任何问题或需要进一步帮助,请随时联系我们。谢谢!
Metadata
Release files for pytest-yaml-fei 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-yaml-fei-2.0.0.tar.gz | 27.4 kB | Details |
Release files / pytest-yaml-fei-2.0.0.tar.gz
| Download URL | pytest-yaml-fei-2.0.0.tar.gz |
|---|---|
| Size | 27.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
809a7f66afb57e72e198853fae8e5c958e8059bc5f1b75e23394fe87e3dd7262
|
|
BLAKE2b-256 checksum How to use checksums |
7f3927fde6a96c6c68a7d32a00a9bca40a4fb3795a8a98844551220680e09abf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.13
|