GitHub Copilot 写测试脚本实战指南:QA 用 AI 写 Playwright 和 Selenium 测试
手把手教 QA 工程师用 GitHub Copilot 撰写 Playwright 和 Selenium 自动化测试脚本,含 Prompt 技巧、实际案例、常见陷阱与最佳实践。
最后更新:2026-05-24
目录
1. 为什么 QA 要用 Copilot 写测试?
QA 工程师每天花大量时间在写重复性高的测试脚本上:登入流程、表单验证、CRUD 操作。这些测试逻辑相似,但手动写每一个都很耗时。 GitHub Copilot 能根据你的注解、函式名称和上下文,自动补全测试程式码。不是取代你的判断力,而是加速你的双手。
-
速度提升:重复性高的测试脚本,撰写时间平均减少 50-70%
-
减少语法错误:Copilot 产出的程式码语法正确率很高,减少 Debug 语法问题的时间
-
学习新框架:即使你不熟悉 Playwright,Copilot 也能根据你的意图产出正确的 Api 呼叫
-
保持专注:让 Ai 处理「怎么写」,你专注在「测什么」
2. 环境准备:5 分钟设定好
开始之前,需要准备以下工具。
-
Vs Code:安装最新版 Visual Studio Code
-
Github Copilot 扩充套件:在 Vs Code 扩充商店搜寻并安装。免费方案每月有使用额度,付费版 Us$10/月
-
Node.Js:安装 Node.Js 18+(Playwright 需要)
-
Playwright:执行 Npm Init Playwright@Latest 初始化专案
-
Python + Selenium(选用):如果你的团队用 Python,Pip Install Selenium Pytest
小提示
- 建议开启 Copilot Chat(侧边栏),可以直接用对话方式请 AI 生成整段测试
3. Prompt 技巧:让 Copilot 产出高品质测试
Copilot 的产出品质取决于你给的上下文。以下是实测最有效的 Prompt 技巧。
-
技巧一 — 用注解描述测试意图:在程式码中写清楚的注解,例如 // Test: User Login With Valid Credentials Should Redirect To Dashboard
-
技巧二 — 先写测试名称:Test('Should Display Error When Password Is Less Than 8 Characters') 然后让 Copilot 补完内容
-
技巧三 — 提供 Page Object 上下文:先写好 Page Object,Copilot 会根据可用的方法自动组合测试步骤
-
技巧四 — 用 Copilot Chat 批量生成:在 Chat 中输入「帮我根据以下页面元素,产出登入功能的正向、负向和边界值测试」
-
技巧五 — 给范例让 Ai 学风格:先手写一个完整的测试当范例,后续的测试 Copilot 会模仿你的风格和模式
4. 实战案例:Playwright 登入测试
以下是用 Copilot 生成 Playwright 登入测试的完整流程。你只需要写好注解,Copilot 就能产出大部分程式码。
-
Step 1:建立测试档案 Login.Spec.Ts,写下 Describe 和 Test 标题
-
Step 2:用注解描述每个步骤,例如 // Navigate To Login Page, Fill Email And Password, Click Submit
-
Step 3:Copilot 会根据你的描述产出 Page.Goto、Page.Fill、Page.Click 等呼叫
-
Step 4:审查并补充断言(Copilot 常漏掉关键断言)
-
Step 5:执行 Npx Playwright Test 验证测试是否通过
小提示
- Copilot 产出的 locator 可能不够稳定,优先改用 data-testid 或 getByRole 等稳定选择器
- 一定要补充「负向测试」—— Copilot 通常只生成 happy path
5. 实战案例:Selenium + Python API 测试
Python QA 团队常用 Selenium + pytest 的组合。 Copilot 在 Python 环境中同样表现优秀。
-
用 Docstring 描述测试目的:Def Test_Add_To_Cart(): 加上 """Verify That Clicking Add To Cart Button Increases Cart Count By 1"""
-
Copilot 会自动产出 Driver.Find_Element、Driver.Click、Assert 等语句
-
搭配 Pytest Fixtures:先写好 @Pytest.Fixture 的 Setup/Teardown,Copilot 会在测试中正确引用
-
搭配 Conftest.Py:Copilot 能读取 Conftest.Py 中的共用设定和 Fixtures,在新测试中正确使用
6. Copilot 产出测试的常见陷阱
AI 产出的测试不是直接能用的成品。以下是必须人工检查的重点。
-
断言不足:Copilot 常常产出操作步骤但漏掉断言,或只加了一个很弱的断言。每个测试至少要有一个有意义的断言
-
等待策略错误:Ai 可能用 Page.Waitfortimeout(3000) 这种写死的等待,应改为 Page.Waitforselector 或 Expect(Locator).Tobevisible()
-
Locator 不稳定:Ai 倾向用 Css Class 或 Xpath 当 Locator,这些在 Ui 变动时很容易坏。改用 Data-Testid 或 Playwright 的 Getbyrole
-
缺少清理步骤:测试结束后没有清理测试资料,会影响其他测试。确保有 Aftereach 或 Teardown
-
过度依赖 Happy Path:Ai 生成的测试通常只涵盖正常流程,你需要手动补充错误场景、边界值和权限测试
注意事项
AI 产出的测试脚本必须经过人工审查后才能加入 CI/CD pipeline。未经审查的测试可能会产生假通过(false positive),给你错误的安全感。
7. 进阶:用 Copilot Chat 批量生成测试
Copilot Chat 可以一次产出整个测试档案,比逐行自动补全更有效率。
-
整页测试生成:「@Workspace 根据 Loginpage.Ts 的方法,帮我用 Playwright 产出完整的登入功能测试,包含正向、负向和边界值」
-
根据 Api 文件生成:「根据以下 Swagger Api 定义,帮我产出 Api 整合测试」然后贴上 Api Spec
-
根据 Bug Report 生成回归测试:「这个 Bug 是用户输入特殊字元时表单崩溃,帮我写一个回归测试确保修复有效」
-
批量产出 Page Object:「根据这个 Html 页面结构,帮我建立 Page Object Model,包含所有可互动元素」
小提示
- 使用 @workspace 标签让 Copilot 读取整个专案的上下文,产出的程式码会更符合专案风格
- 生成后用 npx playwright test --debug 逐步执行,快速找出需要修正的地方
8. 最佳实践与团队导入建议
以下是在团队中成功导入 Copilot 写测试的经验总结。
-
建立「Copilot 测试规范」:定义哪些测试适合让 Ai 产出(Crud、表单验证、Api 测试)、哪些必须手写(安全测试、业务逻辑、探索性测试)
-
先写 Page Object 再让 Ai 写测试:有好的 Page Object 层,Copilot 产出的测试品质会大幅提升
-
建立测试模板:在专案中放几个写得好的测试当范例,Copilot 会学习你的风格
-
Code Review 必须包含「Ai 产出标注」:让 Reviewer 知道哪些是 Ai 产出的,重点审查这些部分
-
每周回顾 Ai 产出的测试品质:追踪 Ai 测试的假阳性率和维护成本,持续优化 Prompt 策略
重点整理
- 1 GitHub Copilot 能根据注解和上下文自动产出测试脚本,QA 写测试的速度可提升 2-3 倍
- 2 关键不是让 AI 从零写测试,而是「给好的上下文」让 AI 产出高品质的测试初稿
- 3 Playwright + Copilot 是目前 CP 值最高的 AI 测试组合,两者都有免费方案
- 4 AI 产出的测试必须经过人工审查,特别注意断言是否完整、等待策略是否合理
相关懒人包
AI 自动化测试工具完全比较 2026:Testim、mabl、Katalon AI 等 6 大工具评测
2026 年 6 大 AI 自动化测试工具深度比较,涵盖 Testim、mabl、Katalon AI、Applitools、Codium AI、Playwright AI 的功能、价格与适用场景。
AI 驱动的测试报告分析与缺陷预测指南:让数据帮你找到高风险模组
教 QA 团队用 AI 工具分析测试报告、预测高风险模组、自动产出缺陷趋势报告,从被动修 Bug 转为主动预防,附实际工具与操作步骤。
QA 用 AI 测试 API、Web、App、Spec 完全指南:四大测试场景实战教学
完整教学 QA 如何在 API 测试、Web 测试、App 测试和规格审查四大场景中运用 AI 工具,附具体 Prompt、工具推荐与实际操作步骤。
一般声明
本站提供之资讯仅供参考,不保证其完整性与正确性。使用者应自行判断资讯之适用性。