自动化测试框架
   ](https://github.com/features/actions)
A. 生产就绪自动化框架 通过人工智能驱动的测试维护、预定的CI运行和Telegram通知。
______________________________________________________________________
目录
______________________________________________________________________
手动和自动化STP
______________________________________________________________________
概述
该项目展示了 专业级自动化测试 与:
- 干净的生产风格代码 页面对象模型+工作流分离
- 基于XML的配置 用于灵活、无代码的环境管理
- AI 代理 自动分析和修复失败的测试
- 计划CI 通过GitHub Actions(每天运行,向Telegram报告)
- 综合报告 使用Allure+Markdown报告
______________________________________________________________________
主要特点
动态配置
- 基于XML的配置(
data.xml)--浏览器、环境、无头、重试等。 - CLI参数在运行时重写
- 无需更改代码以适应不同的环境
AI驱动的测试维护
- Claude代理SDK 整合(
claude-haiku-4-5) - 自动读取失败的测试,确定根本原因,应用最小修复
- 修复后仅重新运行失败的测试以进行验证
- 通过以下方式选择加入
--ai-fixflag——未经明确许可,从不运行
通过电报通知安排CI
- GitHub Actions工作流每天02:00 UTC运行
- 可从GitHub UI手动分派(带标记过滤器)
- 向Telegram机器人发送摘要消息+完整的Markdown报告
整洁架构
- 页面对象+工作流 设计模式
- 集中式页面管理(
manage_pages.py) - 可重复使用的夹具、公用设施和类型化配置
______________________________________________________________________
技术栈
| 组件 | 技术 |
|---|---|
| 语言 | Python 3.12+ |
| 测试运行器 | Pytest |
| 浏览器自动化 | 剧作家 |
| 测试设计 | 页面对象+工作流 |
| 配置系统 | XML(data.xml) + config_loader.py |
| 报告 | 诱惑+Markdown(reports/) |
| AI修复代理 | Claude代理SDK(claude-haiku-4-5) |
| CI/CD | GitHub操作(计划+手动调度) |
| 通知 | 电报机器人API |
______________________________________________________________________
项目结构
automation/
├── automated_test_runner.py # AI-powered scheduled test runner
│
├── .github/
│ └── workflows/
│ └── scheduled_test_runner.yml # GitHub Actions — daily + manual
│
├── configuration/
│ └── data.xml # Main config (browser, env, headless…)
│
├── utilities/
│ ├── config_loader.py # Loads & normalizes XML config
│ ├── manage_pages.py # Central Page Objects manager
│ └── logger.py
│
├── page_objects/
│ ├── login_page.py
│ ├── inventory_page.py
│ ├── cart_page.py
│ └── checkout_page.py
│
├── workflows/
│ ├── web_workflow.py # UI workflows (login, cart, checkout…)
│ └── api_workflow.py
│
├── test_cases/
│ ├── conftest.py # Fixtures, browser setup, trace/screenshot
│ ├── test_saucedemo.py # 20 E2E tests (Login, Products, Cart…)
│ ├── test_login.py
│ ├── test_web.py
│ └── test_api.py
│
├── reports/ # Generated Markdown reports
├── requirements.txt
└── requirements.flex.txt # Flexible deps for CI/AI agent______________________________________________________________________
入门指南
先决条件
- Python 3.12+
- 点
安装
# Clone the repository
git clone https://github.com/gilkalman-portfolio/automation.git
cd automation
# Install dependencies
pip install -r requirements.flex.txt
# Install Playwright browsers
python -m playwright install chromium环境变量(局部)
创建一个 .env 项目根目录中的文件:
# .env — never commit this file
ANTHROPIC_API_KEY=sk-ant-... # required only for --ai-fix
TELEGRAM_BOT_TOKEN=123456:ABC... # required for Telegram notifications
TELEGRAM_CHAT_ID=-100123456789 # your chat or group ID______________________________________________________________________
配置
编辑 configuration/data.xml 控制运行时行为:
stg
true
chromium
1
retain-on-failure
only-on-failure
还支持CLI覆盖:
pytest --env=prod --browsers=firefox --headless=true______________________________________________________________________
用法
运行所有测试
pytest按标记运行
pytest -m smoke
pytest -m regression使用Allure报告运行
pytest --alluredir=allure-results
allure serve allure-results______________________________________________________________________
自动测试运行器
automated_test_runner.py 运行一个完整的循环:
1. Run pytest → capture JSON + JUnit XML results
2. If failures + --ai-fix → Claude Agent analyses and fixes
3. Re-run only the failed tests to verify fixes
4. Generate Markdown report → reports/report_YYYYMMDD_HHMMSS.md
5. Send summary + report file to Telegram命令
# Single run — always works, no API key needed
python automated_test_runner.py
# Smoke tests only
python automated_test_runner.py -m smoke
# With AI auto-fix (requires ANTHROPIC_API_KEY)
python automated_test_runner.py --ai-fix
# Scheduled loop every 24 hours (local)
python automated_test_runner.py --schedule
# Custom interval
python automated_test_runner.py --schedule --interval-hours 6报告示例
# Automated Test Report — 20260407_020315
Status: ✅ ALL PASSING
Duration: 42.3s
| Metric | Before | After |
|----------|--------|-------|
| ✅ Passed | 18 | 20 |
| ❌ Failed | 2 | 0 |
| 🔧 Fixed | — | 2 |______________________________________________________________________
CI/CD--GitHub操作
工作流程 .github/workflows/scheduled_test_runner.yml 自动运行:
| 触发器 | 何时 |
|---|---|
| 日程 | 每天02:00 UTC |
| 手动调度 | GitHub用户界面→ 行动→ 运行工作流 |
所需机密(GitHub→ 设置→ 秘密→ 行动)
| 秘密 | 目的 |
|---|---|
TELEGRAM_BOT_TOKEN | 来自@BotFather的Telegram机器人令牌 |
TELEGRAM_CHAT_ID | 目标聊天/群ID |
ANTHROPIC_API_KEY | Claude API密钥(仅与 ai_fix=true) |
手动调度选项
- 标记 --过滤器测试:
smoke/regression/sanity/空白(全部) - ai_fix —
true启用Claude AI修复(需要ANTHROPIC_API_KEY)
______________________________________________________________________
联系
吉尔·卡尔曼\ 电话:050-6323576\ github:
______________________________________________________________________
许可证
此项目是为 投资组合和演示目的.
