【轉】寫給想學習自動化測試的新人

賀滿發表於2013-12-17

  最近通過各種渠道發現大家對一些測試工具的基本情況不太清楚,經常會問類似於watir與watir webdriver的區別,我有1個專案,是用watir還是用selenium webdriver呢,之類的問題,在這裡筆者不才略微總結一下,希望能給大家一個較為清晰的認識。

  Waitr與Watir-WebDriver有什麼區別?

  Watir是非常優秀的一款自動化測試工具。其使用ruby作為指令碼語言進行開發,能夠在ie上實現元素定位、操作等自動化任務;

  Watir WebDriver是Selenium WebDriver的一個封裝。簡單來說如果selenium webdriver是手機上的安卓系統,那麼watir webdriver就是MIUI。watir webdirver就是將selenium webdriver包裝了一下,使得selenium webdriver的api更加的友好。當然watir webdriver也不是毫無根據的對selenium webdriver進行封裝,watir webdriver使用了watir的api組織形式對selenium webdriver進行封裝,這樣watir的程式碼跟watir webdriver的程式碼看上去就很”相似”了。這也是大家無法分辨watir與watir webdriver區別的原因。

  另外watir webdriver相比較watir有如下的一些優點:

  watir webdriver支援多瀏覽器, 而watir只支援ie

  watir webdriver支援html5, 而在這方面watir不太明確

  watir webdriver對彈出框(js alert confirm)的處理更加友好

  watir webdriver支援移動裝置,如iPhone和androrid

  QTP和watir的區別是什麼?

  首先最明顯的區別是:QTP是商業工具,其不是免費的;而watir是開源的測試工具,使用免費。

  QTP支援指令碼的錄製,而watir不可以;

  QTP的指令碼語言是vbscript,而watir使用ruby進行指令碼的開發;

  QTP上手很容易,一般測試人員哪怕不會指令碼語言都可以通過QPT錄製回放指令碼來進行用例的開發;相對來說,watir則需要一定的程式碼基礎;

  QTP對IE和Firefox都有支援,但是watir只支援IE(儘管firewaitr支援firefox,但是工具目前更新速度不快,可以忽略);

  QTP是有軟體介面的,而watir只是一個程式碼庫;

  那麼我應該選擇QTP還是watir?

  如果預算允許且自動化測試對瀏覽器的相容性要求不高的話是可以選擇QTP的;

  如果預算有限,但是專案只要求支援IE的話建議選擇watir,學好watir測試人員日後的發展有一定的好處;

  如果預算有限,專案又要求支援多瀏覽器,那麼推薦使用watir webdriver;

我應該選擇watir webdriver還是selenium webdriver?

  從本質上說selenium webdriver 和 watir webdriver是沒有任何區別的,就跟中國男足輸1個和輸10個是沒有任何分別一樣。

  從筆者的經驗上來說,watir webdriver的api更加的豐富和友好,如果你可以使用ruby作為開發語言的話,強烈推薦watir webdriver。

  如果你的專案要求你使用java javascript之類的語言,那麼你只能選擇selenium webdriver了。

  我是新手,這麼多測試工具我該選擇哪一個作為入門的學習工具呢?

  如果你有決心有時間的話,那麼推薦watir作為web測試的入門工具,原因是你可以通過watir學習到ruby,js,html,dom等一系列的知識;然後再轉watir webdriver 甚至是selenium webdriver,學習曲線是相對平滑的;

  如果你有決心但沒時間卻又急於求職的話,那麼用熟QTP也是一個捷徑。

  selenium和webdriver的關係是什麼?

  webdriver是selenium2的一部分;

  webdriver提供了多瀏覽器間統一的api,並將會持續更新,而selenium1將不再維護;

  selenium2等於webdriver加selenium1

  webdriver比selenium強在哪兒?

  wd的api比se更加的物件導向,更加友好;

  wd解決了se的軟肋同源問題;

  wd多瀏覽器間的行為更加一致;

  wd支援iphone和安卓;

  se1不再更新,而webdriver社群非常活躍。

  作為新人,我想學習指令碼語言,我該從哪一門開始呢?

  如果你想做web方面的自動化而又想選擇一門指令碼語言開始的話,筆者推薦javascript。因為js配合html能做出多種效果,能夠給讓新人很快的獲得成就感。另外前端人員目前相對緊缺,學好js無疑能夠讓你的身價有一定的增加。

  如果你只是想學一門指令碼語言,那麼建議學習python,python的理念是做1件事件從來只有一種方法,儘管沒有選擇,但是至少也不會混亂和迷惑。另外python社群非常活躍,氛圍很好。

  如果你想學習watir和waitr webdriver,那麼就從ruby開始。ruby入門容易精通難,而且經濟價值沒有py和js那麼立竿見影。

  總是指令碼語言殊途同歸,修行還是要看個人

相關文章