Pytest测试框架搭建需求及实现方案

文章介绍了基于Pytest构建的全栈自动化测试框架,支持接口自动化、WebUI自动化及App自动化。框架实现了批量运行用例、生成测试报告、发送邮件通知、灵活的运行方式、日志记录、环境切换、数据库断言等功能,并通过插件和自定义钩子函数增强其稳定性和效率。此外,文章还讨论了如何通过分层和模块化设计减少维护成本并提高运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

框架需求及实现方案

框架需求

实现方案

支持接口自动化、Web UI自动化及App自动化#

可以批量运行用例并生成测试报告

测试完成发送邮件

提供灵活的运行方式,如按功能模块运行、按脚本运行、按用例等级运行等等

提供运行日志方便定位问题

支持切换环境

支持数据库断言

减少维护成本

增加运行的稳定性

提高运行效率

框架规划

功能规划及方案选择

总结:


框架需求及实现方案

框架是为了解决某一特定问题而设计的。在搭建测试框架前,我们要清楚我们的需求以及设计目标。然后才能根据需求来选择实现方案。

框架需求

假设我们要设计一款,支持接口自动化、Web UI自动化及App自动化的全栈自动化测试框架,我们的需求如下:

  1. 支持接口自动化、Web UI自动化及App自动化
  2. 可以批量运行用例并生成测试报告;
  3. 测试完成发送邮件;
  4. 提供灵活的运行方式,如按功能模块运行、按脚本运行、按用例等级运行等等;
  5. 提供运行日志方便定位问题;
  6. 支持切换环境;
  7. 支持数据库断言;
  8. 减少维护成本;
  9. 增加运行的稳定性;
  10. 提高运行效率。
    这些是测试框架常见的需求,另外还包括,灵活的实用方式,如配置分类,数据分类,尽量设计的易用和清晰,支持持续集成等等。我们可以根据这些需求,结合Pytest框架来选择实现方案。

实现方案

由于Pytest非常灵活且生态丰富,我们使用Pytest作为基础框架来实现这些需求,针对以上每个需求,我们的简单实现方案如下:

支持接口自动化、Web UI自动化及App自动化#

我们通过封装requests、selenium、appium-python-client库来为框架提供操作HTTP接口、Web浏览器以及App的方法。
在用例目录中使用api_test、web_test、app_test对接口自动化用例、Web UIz i动画用例及App UI自动化用例进行分别管理。
安装方法:

$ pip3 install requests selenium appium-python-client

可以批量运行用例并生成测试报告

按Pytest用例格式编写测试用例函数或类,我们便可以在命令行使用pytest命令批量选择用例执行。
生成测试报告我们可以使用Pytest三方插件pytest-html或allure-pytest,pytest-html测试报告简单方便,allure-pytest生成的测试报告绚丽多彩,这里选择使用allure-pytest作为测试报告生成工具。同时还需要下载allure-commandline工具来将测试数据转为测试报告网站。
安装方法:

$ pip3 install allure-pytest

命令行工具下载链接:

 

测试完成发送邮件

由于Allure生成的测试报告是一个文件夹,我们需要将报告压缩后发送,压缩可以使用Python自带的zipfile模块,发送邮件可以使用Python自带的email模块来组装邮件消息所需的MIME格式,然后使用smtplib连接自己邮箱的SMTP服务来发送。相应的模块需要我们自己封装。
如何在Pytest执行用例完成后自动发送邮件?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值