平台 QA 工程師面試作業 - 第二題(加分項)
- 語言:Python 3.13
- 框架:Playwright 1.60.0、pytest 8.3.4
- 架構:Page Object Model (POM)
git clone https://github.com/BenedictLin/platform-login-test.git
cd platform-login-testpip install -r requirements.txt
playwright install chromium複製 .env.example 為 .env,並填入你的測試帳號和密碼:
SWAG_USERNAME=your_email@example.com
SWAG_PASSWORD=your_password# 執行全量測試(正向 + 反向案例)
pytest test_login.py
# 執行特定測試
pytest test_login.py::test_login_success -v -s
pytest test_login.py::test_login_fail -v -s初期嘗試了憑證注入方案(備份 token 到 auth.json → 在新瀏覽器注入),成功儲存 token,但刷新頁面後前端自動清除 token。推測前端有安全驗證機制,會在檢測到異常登入環境時清除憑證。
因此改採 Hybrid 混合策略:
- Playwright 自動化:填寫帳號、密碼並送出
- 人工介入:停頓 45 秒,手動完成 GeeTest 驗證碼
- 自動化驗證:驗證碼通過後,檢查大頭貼或錯誤訊息
- 不受語言變動影響
- 不受加載延遲影響
- 代表已進入首頁,登入確實成功
應對表單紅字與 Toast 同時出現的情況,提高定位穩定性。
全程使用 wait_for() 動態監聽元件,而非固定時間等待。
帳號密碼以 .env 管理,不寫死在程式碼中,提高安全性。