Web自動化測試之困
標題借用《web之困》這本書名,借機吐槽一下在web自動化測試中遇到的各種不順暢。看了這本書,大感欣慰,因為終于有專家說出了我多年想說而不好意思說的話——現在的web應用就是建立在一堆胡亂拼湊的技術基礎之上的。
從底層協議級就定義不周到渲染技術的五花八門;從古老的html、css、java applet、ActiveX到javascript、flash、sliverlight、html5;從瀏覽器的各顯神通到眼花繚亂的版本升級;從靜態到動態;從即時到異步,真是一個百家爭鳴、百花齊放啊。雖說給普通用戶帶來了賞心悅目的享受,可真苦了我們這些測試工程師了。手工做瀏覽器兼容性測試都不是一般的麻煩,更別提自動化了。十幾年前我每樣技術都嘗試去學習,后來發現我學的速度還趕不上技術新出的速度,于是我厭倦了,從此對web前端技術及其排斥。我幻想著某一天前端技術可以統一得象操作系統那樣規矩和穩定。不過看來一時半會還實現不了,所以厭倦歸厭倦,活還是要干的,所以幾年來我也在考慮這是非做不可的。于是前一篇提到的vs2010就是一個嘗試。當時考慮操作系統是ms家的、瀏覽器是ms家的、自動化工具是ms家的甚至C#語言也是ms家的,要是這樣還不順利,恐怕別的工具更別指望了。事實上,我還是低估了事情的復雜性。
錄制/回放遇到的麻煩隨便列舉一下就有這些:
只支持ie,且不能使用64位版本
視圖縮放比例要求必須為100%
不能識別flash插件
各種意外(如窗口沒有在最前端、沒有最大化等、控件被阻止運行……)導致回放中斷
建立自動化任務時不能在后臺運行(因為要在桌面環境真實啟動瀏覽器),所以管理員必須登錄。這樣一來,服務器一旦重啟就無法做到無人值守的繼續運行
……
諸如此類,總之想順利走通一段自動化腳本可費勁了,經常是煩不勝煩
為此我還總結出一堆錄制腳本的經驗,比如:
把場景分割成每段盡量少操作的多個腳本文件
盡量用鍵盤操作,少用鼠標操作
屏幕上盡量少留無關窗口
對于瀏覽器,盡量在同一個頁簽中操作,盡量避免彈出窗口造成主流程被干擾
動作、腳本之間留的延時要足夠,比如連續執行兩條sql,就有可能第二條執行出錯
……
但真要把這些問題都注意到了,費的心還不如手工來一遍算了。再說費這么大事只是為了回歸驗證以前的功能,確實有點得不償失。所以過后反思起來有這樣一些教訓:
1.目標定位有偏差。借鑒自Apple Chow觀點:只保留少數幾個用來驗證端到端的集成場景的高級別冒煙測試,除此之外盡可能編寫底層的測試。
2.工具不給力。當然如果有google的水平,自行探索和開發各式各樣的測試工具和框架那自然是厲害了,但是沒這水平啊,還是只能找現有的工具用。
后續準備嘗試selenium。說到這里,就想起有的團隊成員提出經常換工具的困擾。——這個問題應該這樣看:使用工具是為了解決問題,是人的思想和能力去駕馭工具而不能讓工具限制了人的思想和能力。所以要去掌握事物的本質,那么換工具也會是經常和順理成章的事情。
posted on 2014-02-19 10:42 順其自然EVO 閱讀(303) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習