构建灵活的自动化测试框架

← 返回博客首页
Python Pytest Allure UIAutomation 自动化测试

💡 项目背景

在软件测试领域,自动化测试是提高效率和质量的关键手段。然而,传统的测试框架往往存在配置僵化、执行模式单一等问题。本项目基于pytest 进行了深度改进,打造了一个支持灵活控制任意用例组合的测试框架,让测试执行更加智能高效。

🎯 核心特性

1. 灵活的用例控制机制

通过配置文件即可精确控制哪些测试用例需要执行,支持多种组合方式:

2. 模块化的目录结构

TESTPROJECT/ ├── aw/ # 方法库 - 封装通用测试方法 ├── config/ # 配置中心 - 控制用例执行逻辑 ├── allure-results/ # 报告输出 - Allure 测试报告生成 ├── resource/ # 测试资源 - 存放测试所需文件 └── testcases/ # 测试用例 - 具体测试脚本

3. 可视化测试报告

集成 Allure 报告系统,支持实时查看测试结果:

🚀 快速开始

环境准备

# 安装 Python 依赖 pip install pytest pip install allure-pytest pip install uiautomator2 # 验证安装 pytest --version allure --version

执行方式

方式一:按配置文件执行

python D:\TESTPROJECT\main.py

该方式会读取 config 目录下的配置文件,按照配置的用例列表执行测试。

方式二:按标记分类执行

python D:\TESTPROJECT\main.py -m

根据 pytest 的 mark 装饰器对用例进行分类执行,适合按功能模块或优先级筛选。

查看测试报告

# 实时查看 Allure 报告 allure serve ./allure-results # 或生成静态报告 allure generate ./allure-results -o ./allure-report allure open ./allure-report

🔧 核心技术实现

Pytest 配置化控制

在 config 目录中定义测试用例的执行策略,示例配置:

# config/test_config.py TEST_CASES = [ "testcases/test_login.py::test_login_success", "testcases/test_order.py::test_create_order", "testcases/test_payment.py" ] # 支持通配符和正则表达式 PATTERNS = [ "testcases/smoke/*.py", "testcases/**/test_*.py" ]

UIAutomation 集成

项目集成了 uiautomator2 库,用于移动端 UI 自动化测试。提供了便捷的页面布局查看工具:

# 启动 UI 查看器 sdk/tools/bin/uiautomatorviewer.bat

通过可视化工具可以快速了解应用界面结构,编写精准的定位器。

方法库封装

aw 目录封装了常用的测试方法,提高代码复用性:

✨ 最佳实践

1. 用例组织原则

2. 标记使用策略

import pytest @pytest.mark.smoke def test_critical_feature(): """冒烟测试用例 - 核心功能""" pass @pytest.mark.regression def test_existing_feature(): """回归测试用例 - 已有功能""" pass @pytest.mark.slow def test_performance_sensitive(): """性能敏感测试 - 执行较慢""" pass

3. 报告优化技巧

📦 项目地址:GitHub - TESTPROJECT

💬 欢迎交流:如果你有任何问题或建议,欢迎在 GitHub 上提 Issue 或 PR!