AI 驱动的 GitHub Action,将 PR 描述中的自然语言测试步骤自动生成、执行并提交为 Playwright 端到端测试。
AISquare Studio AutoQA 是一个 AI 驱动的 GitHub Action,能够将 PR 描述中的自然语言测试步骤自动转换为可执行的 Playwright Python 端到端测试,并在 CI 流水线中执行。
项目基于 CrewAI 多智能体架构实现,包含三个核心智能体:Planner Agent 负责自然语言到测试代码的转换,Executor Agent 负责代码安全校验与沙箱执行,Step Executor Agent 在 Active Execution Mode 下提供逐步骤的实时浏览器上下文感知生成。通过 DOMInspectorTool 实现智能选择器发现,结合 RetryHandler 提供自动错误恢复与替代选择器尝试。
安全层面,所有 AI 生成的代码在执行前经过 AST 静态分析,阻止 eval、exec、subprocess、文件 I/O 等危险操作,仅允许 playwright.sync_api、time、datetime、re 四个白名单模块导入。测试在沙箱化的 Playwright 浏览器上下文中执行,日志与报告中的敏感信息自动脱敏。
支持三种执行模式:generate(从 PR 生成新测试)、suite(运行已有回归套件)、all(同时生成与回归)。测试按 A/B/C 三级关键性分类组织,生成路径为 tests/autoqa/{tier}/{area}/test_{flow_name}.py。基于 ETag 的幂等机制避免对未变更 PR 的重复生成,Pip 包与 Playwright 浏览器缓存将冷启动时间从 3–4 分钟优化至 45–60 秒。执行结果以截图、HTML 报告和 JSON 工件形式回注到 PR 评论中。
快速开始#
在目标仓库创建 .github/workflows/autoqa.yml:
name: AutoQA Test Generation
on:
pull_request:
types: [opened, synchronize, edited]
jobs:
autoqa:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate and Execute Tests
uses: AISquare-Studio/AISquare-Studio-QA@main
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
staging-url: ${{ secrets.STAGING_URL }}
staging-email: ${{ secrets.STAGING_EMAIL }}
staging-password: ${{ secrets.STAGING_PASSWORD }}
需配置 Secrets:OPENAI_API_KEY(需 GPT-4 访问权限)、STAGING_URL、STAGING_EMAIL、STAGING_PASSWORD。
PR 描述中使用 autoqa 代码块编写测试步骤:
```autoqa
flow_name: user_login_success
tier: A
area: auth
```
1. Navigate to the login page
2. Enter valid email address
3. Enter valid password
4. Click the login button
5. Verify the dashboard appears
核心架构#
- ActionRunner(
src/autoqa/action_runner.py)— GitHub Action 主编排器 - AutoQAParser(
src/autoqa/parser.py)— PR Body 元数据解析 - IterativeOrchestrator(
src/execution/iterative_orchestrator.py)— 逐步骤执行协调 - ExecutionContext(
src/execution/execution_context.py)— 步骤间状态跟踪 - RetryHandler(
src/execution/retry_handler.py)— 失败分析与重试逻辑 - DOMInspectorTool(
src/tools/dom_inspector.py)— 实时页面选择器发现 - PlaywrightExecutor(
src/tools/playwright_executor.py)— 测试代码执行引擎 - QACrew(
src/crews/qa_crew.py)— CrewAI 智能体编排定义
Action 配置参数#
| Input | 必填 | 默认值 | 说明 |
|---|---|---|---|
openai-api-key | Yes | — | OpenAI API 密钥 |
openai-model | No | openai/gpt-4.1 | 用于测试生成的模型 |
staging-url | Yes | — | 测试环境 URL |
qa-github-token | No | github.token | GitHub Token |
staging-email | No | test@example.com | 测试账号邮箱 |
staging-password | No | — | 测试账号密码 |
target-repo-path | No | . | 目标仓库路径 |
test-directory | No | tests/autoqa | 生成测试的基础目录 |
create-pr | No | false | 是否为测试创建独立 PR |
execution-mode | No | generate | 执行模式:generate / suite / all |
待确认信息#
- 独立官网:未发现
- AISquare Studio 组织背景:README 提及但无详细介绍
- 首次发布日期:仓库有 3 个 tag 和 163 次提交,无明确首次发布时间
- 生产使用案例:未列出实际使用该 Action 的公开仓库
- 是否支持其他 LLM 提供商:当前仅明确支持 OpenAI API