談網頁自動化測試工具:Selenium / Watir / PhantomJS / SlimerJS / Zombie.js
工程師的自我測試通常有個盲點:你無法自己執行 100% 測試。
若程式及測試都是你寫的,是無法達到 100% 完美的測試。即使非常努力追求完美,最後沒測試到的部分不是非常愚蠢的錯誤,也會是嚴重到你沒想到的錯誤。
公司也因為 RD 人力短缺,沒有專職的 DevOps 及 QA,而工程師自我驗證的結果就會遇到前述我指出的問題。
去年公司開始導入下一代架構,其中有針對 DevOps/QA 進行解套,但我們仍持續徵求 PM / RD / DevOps,歡迎有興趣的朋友與我聯絡。
Selenium (Selenium WebDriver)
利用真實瀏覽器進行測試,其它的工具都只是偽瀏覽器。支援全部常見瀏覽器的工具:IE / Firefox / Chrome / Safari / Opera / Android / iOS。缺點是安裝及運行環境比較棘手,進入門檻較高,適合給專職 QA 或 DevOps 負責。
Watir (Watir WebDriver)
與 Selenium 同樣用真實且支援一樣多的瀏覽器。不同的是,接口程式語言只支持 Ruby,但因為本身也是 Ruby 寫的,所以通常會是 Ruby 愛好者的首選。
PhantomJS
利用 WebKit 瀏覽器引擎模擬,不是實際執行瀏覽器。所以省資源但測試可能有誤差,對瀏覽器的一些特定行為也無法模擬。而因為是 WebKit 引擎,所以只能測 WebKit 類的瀏覽器。
SlimerJS
立志與 PhantomJS 做到一樣的功能,只是瀏覽器引擎換成 Gecko (Firefox)。
Zombie.js
不採用真實瀏覽器,也不用瀏覽器引擎,完全以 JavaScript 模擬行為。應該是速度最快,但測試誤差最大的工具。
結語
以上的工具還有很多優缺點就不列出了。公司未來從架構面上採用了某一種微妙的平衡策略,目的當然是希望給我們的客戶享有更高品質的服務。