背景
瀏覽器手動驗證是最直觀的 Web 測試方式,但自動化工具能釋放人力。Ruby 平台的 Watir 是標竿,.NET 團隊則有專屬選擇:WatiN、Selenium、LTAF。
工具介紹
WatiN (Web Application Testing in .NET)
- Watir 的 C# 移植版,支援任意 .NET 語言撰寫測試碼。
- 1.0 僅支援 IE,2.0+ 透過外掛支援 Firefox。
- 最新 2.0 CTP3 強化 Firefox 功能並修正 Bug。
- 附屬專案 WatiN Test Recorder(Alpha 版)可錄製瀏覽器操作自動生成測試碼。
- 開源,Apache License 2.0。
Selenium
- 完整測試系統:Selenium IDE(錄製)、Selenium RC(多語言撰寫/執行)、Selenium Grid(分散式並行測試)。
- 核心 Selenium Core 基於 JsUnit,純 JavaScript 實作,支援所有支援 JS 的瀏覽器。
- 以特定格式 HTML 檔案驅動測試套件,可讀性佳。
- RC 支援 C# 等主流語言,跨作業系統/瀏覽器。
- Grid 將測試分發多機器,大幅加速。
- 開源,Apache License 2.0。
LTAF (Lightweight Test Automation Framework for ASP.NET)
- ASP.NET QA 團隊開發,用於產品迴歸測試。
- 任意 .NET 程式碼撰寫測試,內建 API 操作 DOM。
- 近期發布 April Update 並釋出原始碼。
- 獨特優勢:
- 直接在瀏覽器運行,天生支援現有及未來所有瀏覽器。
- 部署於被測網站同一進程,測試碼與頁面共享記憶體,無需跨進程序列化,資料傳遞極簡單(只是引用)。
- 已知限制:
- 頁面置於 Frame 中,
window.top 等屬性改變(可自訂 getTop() 解決)。
- 本質用 JS 操作 DOM,阻塞性操作(
alert、confirm)會凍結測試(現代 JS 框架已可替代,影響不大)。
- 非開源但釋出原始碼。
橫向比較表
| 特性 | WatiN | Selenium | LTAF |
| 瀏覽器支援 | IE / Firefox | IE / Firefox / Opera / Safari | 任意(瀏覽器內運行) |
| 自動生成程式碼 | 有(不支援 Firefox) | 有 (Selenium IDE) | 無 |
| 授權模式 | Apache 2.0 開源 | Apache 2.0 開源 | 非開源但釋出碼 |
| 特色優勢 | — | Grid 分散式並行加速 | 測試碼與網站同進程,記憶體直傳資料 |
選型建議
無絕對最佳,視專案需求決定:
- 需跨瀏覽器、分散式並行 → Selenium
- .NET 團隊、偏好 C#、重視錄製回放 → WatiN
- ASP.NET/MVC 專案、需深度整合 View 單元測試、追求極簡資料傳遞 → LTAF