基於Selenium2和TestNG的自動化測試

2021-07-10 12:34:47 字數 1832 閱讀 2383

結合testng讓自動化測試的流程掌控自如儘管目前的指令碼結構已經很清晰,資料和測試邏輯也都分離開來,易於維護,但從測試排程的角度以及可重用的角度來看,還需要進一步改進。

testng,即testing next generation,下一代測試技術,是一套根據junit 和 nunit思想而構建的利用注釋來強化測試功能的乙個測試框架,既可以用來做單元測試,也可以用來做整合測試。

通常編寫乙個測試的過程有三個典型步驟:

* 編寫測試的業務邏輯並在**中插入testng annotation

* 將測試資訊新增到testng.xml檔案或者build.xml中

* 執行testng

在上述段落中我們的sample scenario是乙個相對長的測試用例,如果是將此用於手動測試,應該不失為乙個好的測試用例,但是用在自動化測試中,我們期望可以盡可能模組化我們的指令碼,以便於以後重用。模組化之後,我們就可以利用testng的annotation指定該模組何時執行,以及執行順序等,在多個測試用例中也可以重用。

重新組織的sample scenario如下:

1.開啟jazz.net:

2.開啟login頁面

3.輸入有效的登入資料

4.進入提問頁面

5.填寫提問內容

6.提交提問

7.驗證提交是否成功

8.logout

在重構指令碼且給測試方法新增testng的annotation之前,需要將junit的annotation去除掉,然後引入testng相關的jar包:testng-6.*.jar,新增testng的annotation。經過重構後,指令碼片段如下:

▲圖11 新增testng的annotation

利用testng的優勢,我們可以把一些初始化/ 收尾工作的測試方法用@beforesuite/@aftersuite,@beforegroups/@aftergroups, @beforetest/@aftertest等標記, 也可以用一些屬性控制它是否不管什麼情況下都執行,定義其依賴的方法等。

例如:

▲圖12 @beforesuite的用法

▲圖13 @aftersuite以及屬性alwaysrun的使用

為了定義測試的執行順序,需要建立xml檔案,定義執行順序。具體的xml中各個節點和屬性的含義請參閱testng官方站點。

▲圖14 用於定義執行順序的xml檔案

然後在main方法通過testng來讀取xml檔案以驅動測試的執行,**片段如下:

▲圖15 通過程式呼叫testng

執行測試用例之後,產生的testng的report如下:

▲圖16 testng自帶的report

我們在充分了解了testng的各種annotation以及如何控制其執行行為,就可以把模組化的測試方法排程的更好,也可以做到很好的重用。

**:

selenium2 測試用例(2)

一 登陸用例例項 1.用例 un driver.find element by link text u 退出系統 text if un u 退出系統 print u 登陸成功 else raise nameerror username is error driver.find element by ...

selenium2如何設定firefox的UA

最近再做robot自動測試系統,使用的是selenium2library庫,原因是在網上查詢發現其能設定各個瀏覽器的ua進行手機端模擬測試,在google上查到了可以配置chrome的ua 但是蛋疼的是竟然找不到設定firefox的,只能自己硬著頭皮查閱文件來看了,幾個小時過去終於有結果。webdr...

selenium 2 元素定位

selenium通過find element by find element by.elements mark 方法定位頁面元素。如果元素被定位到,返回webelement例項,否則丟擲異常nosuchelementexception.元素定位方法 描述引數 find element by id 通...