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 輔助測試實戰:5 個場景讓你的測試效率翻倍
從測試案例生成到視覺回歸,手把手教你在日常 QA 工作中導入 AI 工具,附實際操作步驟與工具推薦。
AI 驅動的測試報告分析與缺陷預測指南:讓數據幫你找到高風險模組
教 QA 團隊用 AI 工具分析測試報告、預測高風險模組、自動產出缺陷趨勢報告,從被動修 Bug 轉為主動預防,附實際工具與操作步驟。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。