如何讓oracle的自動化測試腳本跑得更快

發表于:2012-10-18來源:futurehandw作者:吳穎敏點擊數: 標簽:自動化測試
我們做自動化測試可能遇到的問題: 1.大量使用name、id、xpath等頁面元素。無論是功能修改、UI重構還是交互性改進都會影響到這些元素,這使得Selenium測試變得非常脆弱。

  我們做自動化測試可能遇到的問題:

  1.大量使用name、id、xpath等頁面元素。無論是功能修改、UI重構還是交互性改進都會影響到這些元素,這使得Selenium測試變得非常脆弱。

  2.過于細節的頁面操作不容易體現出行為的意圖,一段時間之后就很難真正把握測試原有的目的了,這使得Selenium測試變得難于維護。

  3.對具體數據取值的存在依賴,當個別數據不再合法的時候,測試就會失敗,但這樣的失敗并不能標識功能的缺失,這使得Selenium測試變得脆弱且難以維護。

  不斷地添加新的測試,而極少地去重構、利用原有測試。Selenium的執行速度比較慢(相對單元測試),隨著測試逐漸的增多,運行時間會逐漸增加到不可忍受的程度。

  Domain Based Web Testing具體來講,就是Page Object Pattern。

  最終要的是Page Object、Test Data Driven、Navi、Much easier主要是通過對工具的封裝,對頁面的封裝,對URL的封裝,對整體各種測試類的封裝。

  1.Page Object

  主要是將可能遇到的頁面封裝,比如login頁面的username,password的封裝。

  利用xpath或者dom對頁面元素的整體封裝:

  def welcome_message

  @driver.get_text ‘xpath=…’

  end

  對assert方法的封裝:

  on LoginPage do

  assert_equal ‘Welcome!’, welcome_message

  login_as :name => ‘xxx’, :password => ‘xxx’

  end

  def visible?

  @driver.is_text_present(…) && @driver.get_location == …

  end

  包括對于業務類斷言的封裝。

  2.Test Data

  主要是將測試數據更加集中的管理,我們可以利用maven,ant,testng等參數化的方式將數據管理起來。

  3.Navi

  和Test Data driven差不多,遇到可能變更的url進行參數化處理。

  4.Much easier

  是將綜合起來的各種封裝類,進行針對業務的封裝,入參、驗證結果做為輸入值進行更耦合的封裝。

做到最后一步的時候,將致力于將test case對應相關的業務線,精簡testcase,使自動化用例飛起來
 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97