Coding

测试自动化架构

Try it

当需要设计自动化测试框架、或者现有框架维护成本太高需要重构时使用此技能。运用 PageObject、分层测试、关键字驱动、数据驱动等模式设计可维护可扩展的自动化架构。不要直接写测试代码——先设计架构:选型(UI/API/单元)、分层(测试层/业务层/基础设施层)、数据管理(测试数据与脚本分离)和 CI 集成方案。好的自动化架构应该让写用例的人不需要懂底层实现。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

What it does

当需要设计自动化测试框架、或者现有框架维护成本太高需要重构时使用此技能。运用 PageObject、分层测试、关键字驱动、数据驱动等模式设计可维护可扩展的自动化架构。不要直接写测试代码——先设计架构:选型(UI/API/单元)、分层(测试层/业务层/基础设施层)、数据管理(测试数据与脚本分离)和 CI 集成方案。好的自动化架构应该让写用例的人不需要懂底层实现。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

The skill document

⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。

测试自动化架构设计

核心原则

好的自动化架构——分层清晰、职责单一、易于维护、快速反馈。

测试自动化金字塔

📌 本节与 qa-test-strategy-design「测试金字塔」概念对应,但分层名称和比例不同——本技能侧重自动化落地(集成测试层名、70/20/10 比例),strategy-design 侧重策略规划(接口测试层名、60/30/10 比例)。修改时请确认两处含义,避免矛盾。

                    ┌─────────────┐
                    │   E2E测试    │  10%
                    │  (UI/API)    │
                    ├─────────────┤
                    │  集成测试    │  20%
                    │ (接口/服务)  │
                    ├─────────────┤
                    │  单元测试    │  70%
                    │  (函数/类)   │
                    └─────────────┘

分层架构设计

第1层:单元测试层

职责:
├─ 测试范围:函数、类、模块
├─ 执行速度:毫秒级
├─ 维护成本:低
└─ 覆盖目标:核心逻辑

技术选型:
├─ Java:JUnit 5 + Mockito
├─ Python:Pytest + Mock
├─ JavaScript:Jest + Sinon
└─ Go:testing + testify

最佳实践:
├─ 测试与代码同步维护
├─ 每个测试单一职责
├─ 使用Mock隔离依赖
├─ 测试命名清晰(Given-When-Then)
└─ 保持测试快速(<100ms)

第2层:集成测试层

职责:
├─ 测试范围:接口、服务间交互
├─ 执行速度:秒级
├─ 维护成本:中
└─ 覆盖目标:业务流程

技术选型:
├─ API测试:Postman/Newman/REST Assured
├─ 数据库测试:TestContainers
├─ 消息队列测试:Embedded Kafka
└─ 服务虚拟化:WireMock/Mountebank

最佳实践:
├─ 使用真实依赖(TestContainers)
├─ 测试数据可构造、可清理
├─ 验证接口契约
├─ 覆盖正常/异常/边界场景
└─ 保持测试独立性

第3层:E2E测试层

职责:
├─ 测试范围:完整用户流程
├─ 执行速度:分钟级
├─ 维护成本:高
└─ 覆盖目标:核心路径

技术选型:
├─ Web UI:Playwright/Cypress/Selenium
├─ 移动端:Appium/XCUITest/Espresso
├─ 桌面端:Electron Test/WinAppDriver
└─ 性能:JMeter/Locust/k6

最佳实践:
├─ 只覆盖核心路径(20%)
├─ 使用Page Object模式
├─ 数据驱动测试
├─ 稳定的等待策略
└─ 失败时自动截图/录屏

框架设计模式

Page Object Model

优点:
├─ 封装页面元素和操作
├─ 减少代码重复
├─ 易于维护
└─ 可读性强

示例结构:
tests/
├── pages/
│   ├── login_page.py
│   ├── home_page.py
│   └── cart_page.py
├── tests/
│   ├── test_login.py
│   ├── test_home.py
│   └── test_cart.py
├── fixtures/
│   ├── test_data.py
│   └── setup_teardown.py
└── utils/
    ├── driver_factory.py
    └── report_generator.py

关键字驱动

优点:
├─ 业务人员可参与
├─ 测试用例可读性强
├─ 与实现分离
└─ 易于复用

示例:
| 关键字 | 参数1 | 参数2 | 参数3 |
|--------|-------|-------|-------|
| 打开浏览器 | Chrome | | |
| 输入用户名 | testuser | | |
| 输入密码 | Test@123 | | |
| 点击登录 | | | |
| 验证跳转 | /home | | |

数据驱动

优点:
├─ 测试数据与逻辑分离
├─ 易于添加新用例
├─ 覆盖多种场景
└─ 便于维护

示例:
@pytest.mark.parametrize("username,password,expected", [
    ("user1", "pass1", "success"),
    ("user2", "pass2", "success"),
    ("", "pass3", "error"),
    ("user4", "", "error"),
])
def test_login(username, password, expected):
    result = login(username, password)
    assert result == expected

框架选型决策

维度PlaywrightCypressSelenium
浏览器支持多浏览器仅Chrome多语言
执行速度中等
调试体验优秀一般
学习曲线中等
社区生态成长中成熟成熟
适用场景现代Web单页应用传统Web

输出示例

设计Web UI自动化框架(团队5人,JS技术栈,1000+用例) → 分层:单元测试(Jest)→集成测试(Supertest)→E2E(Playwright) → 模式:Page Object Model组织页面对象,关键字驱动封装业务操作 → 数据驱动:JSON/CSV管理测试数据,和环境配置分离 → CI/CD集成:GitHub Actions触发,Allure报告

API自动化框架设计 → 分层:请求封装层→业务接口层→用例层→数据层

检查清单

架构设计完成后检查:

  • 分层是否清晰(单元/集成/E2E)?
  • 各层职责是否明确?
  • 框架选型是否合理?
  • 设计模式是否适用?
  • 可维护性是否考虑?
  • CI/CD集成是否规划?

Related skills

从需求文档自动生成结构化测试用例,覆盖功能测试、边界分析、组合测试和回归测试全流程。自动串联48个专家级子技能,按12步工作流编排执行。适用于:上传需求文档(PRD/Word/PDF/URL)需要完整测试用例时、不知道如何设计测试场景或担心遗漏边界条件时、需要AI评审测试输出并补充测试盲区时。每个步骤都有独立技能支撑,输出格式统一、需求可追溯、覆盖率可量化。

2 installs1 stars

当所有分析(需求解构、场景树、边界清单、组合矩阵)都已完成,需要把分析结果转化为结构化的测试用例时使用此技能。专注用例结构规范、分类体系、覆盖策略和优先级编排。不要在分析还没做完时就跳到用例生成——没有充分的输入,用例一定是泛泛的。适用于将前面的分析产出物整合为 P0-P3 分级、可追溯的标准格式测试用例。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 installs

当新项目启动需要制定测试方案、或者迭代开始前需要确定"这期怎么测"时使用此技能。根据项目特征(新项目/迭代/重构/紧急修复)、风险分布和资源约束设计分层测试策略,明确测试范围、测试手段、准入准出标准和工具选型。一个好的测试策略让团队知道"测什么、不测什么、为什么"。输出包含风险矩阵、分级测试方案的测试策略文档。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

3 installs

当自动化用例频繁维护、跑一次就倒下一批、或者发现团队的测试资产维护成本越来越高时使用此技能。系统化识别测试自动化债务和测试资产技术债,评估每项债务的利息(维护成本)和本金(重写成本),给出分阶段的还款规划。不要追着 flaky test 修——技术债务管理解决的是"为什么有这么多 flaky test"的系统性问题。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 installs

当需要把测试集成到 CI/CD 流水线中、或者现有流水线的测试环节跑起来效率低不可靠时使用此技能。覆盖流水线各阶段的分层测试卡点设计(提交检查→单元测试→接口测试→UI 测试→回归测试)、工具集成策略和质量门禁配置。不要在 CI 里堆满慢的 UI 测试——而是构建测试金字塔:提交阶段跑最快的(<5min),合码阶段跑核心的(<15min),夜间跑全量的。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 installs

当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 installs