您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
用 Selenium 自動(dòng)化驗(yàn)收測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/11/29 14:21:38 ] 推薦標(biāo)簽:

圖 1. 從命令提示符下運(yùn)行 Ruby on Rails

現(xiàn)實(shí)中的用例

在本節(jié)中,我將列出示例應(yīng)用程序的用例。通過這些簡(jiǎn)化的用例,可以編寫模擬用戶所執(zhí)行步驟的驗(yàn)收測(cè)試,并驗(yàn)證這些步驟的結(jié)果是否與預(yù)期相符。股票報(bào)價(jià)應(yīng)用程序?qū)崿F(xiàn)了以下四個(gè)用例:

* 登錄
* 查看股票
* 查看股票細(xì)節(jié)
* 退出

實(shí)現(xiàn)這些用例的代碼已經(jīng)編寫好了;可以在 app 目錄中找到該代碼,測(cè)試用例在 public/selenium/tests 文件夾中。

登錄用例

大多數(shù)人都知道登錄頁(yè)面是如何工作的 —— 輸入用戶名和密碼,然后將數(shù)據(jù)提交到服務(wù)器。如果憑證有效,可以成功登錄,并看到受安全保護(hù)的資源。在示例應(yīng)用程序中,這個(gè)測(cè)試用例包含以下用戶操作和斷言,必須將它轉(zhuǎn)換成一個(gè) Selenium 測(cè)試用例:

1. 單擊登錄鏈接。
2. 驗(yàn)證系統(tǒng)是否要求用戶進(jìn)行登錄。
3. 輸入用戶名。
4. 輸入密碼。
5. 按下登錄按鈕。
6. 驗(yàn)證是否登錄成功。

圖 2 展示了用于這些需求的 Selenium 測(cè)試用例。注意,我是在運(yùn)行測(cè)試之后截取屏幕快照的。綠色箭頭表示成功地通過驗(yàn)證的斷言。

圖 2. 登錄和查看股票測(cè)試用例

查看股票測(cè)試用例

查看股票頁(yè)面顯示一個(gè)公司列表。用于這個(gè)頁(yè)面的測(cè)試用例非常簡(jiǎn)單,所以被包括在前一個(gè)測(cè)試用例的后面。該測(cè)試用例驗(yàn)證當(dāng)前位置是否為 /main/list_stocks,以及頁(yè)面是否包含文本 Click on a company name to view details。

查看股票細(xì)節(jié)用例

查看股票細(xì)節(jié)用例是在查看股票頁(yè)面上觸發(fā)的。用戶在一個(gè)公司名稱上單擊鼠標(biāo)時(shí),觸發(fā)了到服務(wù)器的一個(gè) Ajax 請(qǐng)求。服務(wù)器的響應(yīng)包括該公司的詳細(xì)信息,這些信息將插入到當(dāng)前頁(yè)面中,而不必重新裝載完整的頁(yè)面。用于這個(gè)用例的測(cè)試用例執(zhí)行以下用戶操作:

1. 單擊公司名稱 Acme Oil。
2. 驗(yàn)證頁(yè)面上是否顯示該公司的詳細(xì)信息。
3. 單擊公司名稱 Acme Automotive。
4. 驗(yàn)證頁(yè)面上是否顯示該公司的詳細(xì)信息。

由于使用了 Ajax,請(qǐng)求是異步發(fā)生的。在一般的 Web 應(yīng)用程序中,所有東西通常都是同步的,因此這一點(diǎn)提出了一種不同的挑戰(zhàn)?梢韵駵y(cè)試其他功能一樣來測(cè)試 Ajax 功能。惟一的不同是,必須讓 Selenium 暫停,等待 Ajax 命令完成。為此,可以使用 pause 命令來等待 Ajax 命令的完成。另外,Joseph Moore 在他近的 blog 貼中提到,還可以使用 waitForValue 和 waitForCondition 命令代替 pause 命令(見 參考資料)。

圖 3 展示了被轉(zhuǎn)換成 Selenium 用例的需求。

圖 3. 查看股票細(xì)節(jié)測(cè)試用例

注意 pause 命令:必須使用這些命令,以便等待異步請(qǐng)求完成和更新頁(yè)面內(nèi)容。如果沒有 500 毫秒的暫停,測(cè)試將失。ㄈ 圖 4 所示)。

圖 4. 失敗的查看股票細(xì)節(jié)測(cè)試用例

pause 命令還測(cè)試 Ajax 功能的非功能性需求。500 毫秒對(duì)于 pause 命令是一個(gè)很好的值,因?yàn)?Ajax 請(qǐng)求應(yīng)該快速地執(zhí)行和完成?梢栽囍サ pause 命令,看看結(jié)果如何。如果測(cè)試在您的機(jī)器上失敗,那么試著將這個(gè)值增加到 1000 毫秒。

退出用例

退出用例很容易實(shí)現(xiàn),簡(jiǎn)單來說只有以下兩步:

1. 單擊退出鏈接。
2. 驗(yàn)證是否成功退出。

圖 5 展示了后這個(gè)測(cè)試用例。

圖 5. 退出用例

所有測(cè)試都被添加到 圖 6 左側(cè)顯示的缺省測(cè)試套件中。

圖 6. 示例應(yīng)用程序的測(cè)試套件

執(zhí)行測(cè)試套件

后要做的是在 Mozilla Firefox 和 Microsoft Internet Explorer 中執(zhí)行測(cè)試套件。為此,在瀏覽器中打開 http://localhost:3000/selenium/TestRunner.html,然后單擊 圖 6 中所示的 All 按鈕。失敗的測(cè)試用例和斷言將被標(biāo)記為紅色,但是這里,在兩個(gè)瀏覽器中所有用例都應(yīng)該可以成功完成(同樣見 圖 6)。注意,我使用的是 Mozilla Firefox 1.0.7 和 Internet Explorer 6.0。

還可以單步調(diào)試測(cè)試套件,這意味著 Selenium 將很慢地執(zhí)行測(cè)試套件,這樣當(dāng)測(cè)試套件在瀏覽器中執(zhí)行時(shí),可以看到它的每一步。

結(jié)束語

Selenium 是軟件工程師、設(shè)計(jì)人員和測(cè)試人員的工具箱中又一個(gè)有用且重要的工具。通過將該工具與持續(xù)集成工具相結(jié)合,團(tuán)隊(duì)可以將驗(yàn)收測(cè)試自動(dòng)化,并構(gòu)建更好的軟件,因?yàn)樗麄兛梢愿菀、更早、更頻繁地發(fā)現(xiàn) bug。Selenium 的另一個(gè)優(yōu)點(diǎn)是可以節(jié)省時(shí)間,使開發(fā)人員和測(cè)試人員不必將時(shí)間花在本可以(也應(yīng)該)自動(dòng)化的手工任務(wù)上,從而讓團(tuán)隊(duì)將精力放在更有價(jià)值的活動(dòng)上。

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd