設計自己的基於Selenium 的自動化測試架構-Java版(1) – 為什麼selenium還需要測試架構?

來源:互聯網
上載者:User

本人自動化測試接觸時間不久,如有誤導,概不負責。

既然有了selenium這個開源的自動化的工具,為什麼還要我們自己再去寫一個架構?

Selenium是自動化的工具,當然是可以用在測試領域,但他不是為測試量身打造的。當然我們在編寫簡單的指令碼的時候也不需要什麼架構,隨著時間的推移,或者指令碼的變多,我們發現有很多重複的代碼,這時候我們就可以把這些重複的代碼提取出來,就形成所謂的架構。

 

首先一個普通的測試案例,比如以一個Excel為例(如),每一行代表一個測試步驟,每個步驟又包含(步驟名,描述,期望結果) 3個部分。

TestNG + selenium 我想網上也有很多人用的這兩個來搭配。

我們自訂一個TestCaseClass(測試案例類)來定義一個Test
Case(測試案例)。讓後讓Class繼續 Selenium中的SeleneseTestBase,SeleneseTestCase,或者SeleneseTestNgHelper.用TestCaseClass的一個Method(方法)對應一個Test
Step. Method Name對應Step Name,

方法中Operation(selenium.*一些actions)對應Description,方法中的Assertions(如AssertEqual)來對應 Expected
Result.

再加上啟動selenium和關閉 selenium的代碼,這樣一個TestCaseClass就可以運行起來了。

這時候如果我們要寫10本case,問題就來了。

1) 每次運行TestCase都需要執行個體化selenium,都要start,和close。這寫都重複能不能提取出來?

2) 能不能設計自己的 Actions(操作),能不能設計自己的 Assertions(我叫做檢查點)

3) 能不能把selenium啟動並執行一些環境資訊(如OS,Browser,server,port)儲存到設定檔中?

4) 能不能吧測試對象分離出來儲存(比如儲存到xml檔案)?

5) 能不能吧測試資料分離出來儲存(比如儲存到xml或excel檔案中)?,能不能實現資料迭代,而不只是重複的copy代碼來實行不同的資料測試。

6) 能不能一次執行10本Case?當然也可以,TestNg有自己的設定檔,你可以定義N個Class。但我有個定勢思維,總不能Class檔案和測試案例關聯起來。

7) 異常處理,如果一個Test
Step失敗了,會不會執行下面的步驟,還是直接跳過該本 Case。

8) 如果一個TestCase失敗了,下面的case還能不能執行? Case之間有沒有依賴性?

9) 有沒有詳細的log輸出,當執行失敗的時候,能精準的定位錯誤。因為自動化測試要無人值守,log也是至關重要。

10)          有沒有詳細的測試結果輸出,能不能多種格式(xml,
html, excel等等),能不能自訂要輸出的內容。

11)          包括與其他測試載入器協同工作,如 autoit,Hudson, QC。 怎麼使用 Hudson來進行調度job去執行一套測試案例?怎麼把測試結果上傳到QC之類測試管理工具?和怎麼讓autoit和處理selenium幹不了的工作等等。

 

這上面的問題是我工作中遇到的一些問題,TestNg並不能解決上面的全部,我們可以在TestNg的基礎上加上一些從而來實現這些目的。當讓可以自己寫一套處理這些的方法。

可能我們在測試過程並不需要這麼多功能,也可能會遇到更多的問題。最適合的就是最好的原理。

希望通過工作記錄自己的工作下來,將上面的內容一步一步實現並整理出來。

http://blog.csdn.net/caiqcong/article/details/7594687

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.