Selenium瀏覽器自動化測試使用(1)
Selenium - 介紹
Selenium是一個開源的和便攜式的自動化軟件測試工具,用于測試Web應用程序有能力在不同的瀏覽器和操作系統運行。Selenium真的不是一個單一的工具,而是一套工具,幫助測試者更有效地基于Web的應用程序的自動化。
現在讓我們了解selenium套件和使用這些工具。我們將著眼于以下工具功能:
工具 | 描述 |
---|---|
Selenium IDE | Selenium 集成開發環境(IDE)是一個Firefox插件,可以讓測試人員跟著,需要測試的工作流程,以記錄他們的行為。 |
Selenium RC | Selenium遠程控制(RC)為旗艦測試框架,它允許多個簡單的瀏覽器動作和線性執行。它使用的編程語言,如Java,C#,PHP,Python和Ruby和Perl的強大功能來創建更復雜的測試。 |
Selenium WebDriver | Selenium的webdriver前身是Selenium RC,直接發送命令給瀏覽器,并檢索結果。 |
Selenium Grid | Selenium網格用于運行在不同的機器,不同的瀏覽器同時以最小化執行時間的并行測試的工具。 |
Selenium優勢
QTP和Selenium 都是市場上軟件自動化測試最常用的工具。因此,selenium有更多的意義,現在selenium比較QTP/ UFT有更多的優點。
Selenium | QTP/UFT |
---|---|
Selenium 是一種開源工具。 | QTP是一個商業工具和成本涉及許可證。 |
可以擴展它公開DOM各種技術。 | 有限的附加組件和需要附加組件的技術。 |
可以在不同瀏覽器執行腳本。 | 可以運行測試在Firefox,IE和Chrome瀏覽器的特定版本。 |
可以執行各種操作系統的腳本。 | 僅適用于Windows操作系統。 |
支持的移動設備。 | 支持第三方工具的移動設備。 |
執行在瀏覽器中測試,這不是必需的,重點是腳本執行的進度。 | 腳本執行的工具作用于瀏覽器(模擬用戶操作)過程中需要重點 |
可以并聯使用Selenium網格運行測試。 | QTP不能并行執行測試,但與質量控制整合QTP允許測試并行執行。質量控制也是一種商業工具。 |
Selenium 缺點
現在我們討論selenium較QTP的缺陷。
Selenium | QTP/UFT |
---|---|
僅支持基于Web的應用程序。 | 可以測試Web和桌面應用程序。 |
任何功能部件,例如對象存儲庫/恢復方案 | QTP已經或和恢復方案內置。 |
沒有IDE,所以這樣的腳本開發,不會快于QTP。 | 更直觀的IDE,自動化,可以實現更快。 |
不能在瀏覽器中訪問控制 | 可以在瀏覽器中訪問控制,如收藏夾欄,后退和前進按鈕。 |
沒有默認生成測試報告。 | 默認的測試結果生成工具中。 |
用于參數設置,用戶必須依賴于編程語言 | 參數是內置的,易于實現。 |
Selenium - IDE
Selenium的IDE(集成開發環境)是一個易于使用的Firefox插件,用于開發Selenium測試案例。它提供了一個圖形用戶界面,用于記錄使用Firefox瀏覽器,用來學習和使用Selenium用戶操作,但它只能用于只用Firefox瀏覽器不支持其它瀏覽器。
然而,所記錄的腳本可以被轉換成由Selenium 支持多種編程語言和腳本可以在各種其它的瀏覽器,以及被執行。
點擊表格中了解詳細列出了以下每一個功能。
Title | 描述 |
---|---|
下載Selenium IDE | 本節介紹如何下載和配置Selenium IDE |
Selenium IDE 特性 | 本節介紹在Selenium IDE使用的功能 |
創建Selenium IDE 測試 | 本節介紹了如何使用記錄功能創建IDE測試 |
Selenium IDE 腳本測試 | 本節介紹Selenium IDE腳本的調試 |
插入驗證點 | 在Selenium IDE插入驗證在本節中討論。 |
Selenium 模式匹配 | 本節介紹如何使用IDE正則表達式來工作。 |
Selenium用戶擴展 | Java腳本,允許用戶定制或添加新的功能。 |
不用瀏覽器執行 | 本節介紹了如何在不同的瀏覽器執行Selenium IDE腳本。 |
Selenium - IDE
步驟 1 : 啟動Firefox,然后導航到URL - http://seleniumhq.org/download/。 在Selenium IDE部分,單擊顯示如下所示當前版本號的鏈接。

步驟 2 : Firefox的附加組件通知彈出了允許和禁止的選項。用戶必須允許安裝。

步驟3 : 加載項安裝程序發出警告不可信的附加組件的用戶。點擊“Install Now”。

步驟 4 : Selenium IDE現在可以通過瀏覽訪問 'Tools' >> 'Selenium IDE'。

步驟 5 : 在Selenium IDE,也可以直接從快速訪問菜單欄訪問,如下圖所示。

Selenium - IDE 工具特點
Selenium IDE的特點列出了一個簡單的工具的幫助下提示,如下圖所示。

記錄工具欄的功能進行說明如下。

Selenium IDE 測試創建
涉及使用IDE Selenium創建測試,如下面的步驟
-
記錄和測試添加命令
-
保存測試記錄
-
保存測試程序
-
執行測試記錄
在測試中記錄和添加命令
為了演示目的,我們將利用www.ncalculators.com,了解selenium的特點。
步驟 1 : 啟動Firefox瀏覽器,然后導航到該網站 - http://www.ncalculators.com/
步驟 2 : 從工具菜單中打開Selenium IDE,按下錄制按鈕-即在右上角。

步驟 3 : 導航到 "Math Calculator" >> "Percent Calculator >> 輸入"10" 作為 number1 并且輸入 50 作為 number2 然后點擊 "calculate".

步驟 4 : 然后,用戶可以插入檢查點通過右鍵單擊Web元素,并選擇 "Show all available commands" >> 選擇"assert text css=b 5"

步驟 4 : 所記錄的腳本生成并被顯示在以下腳本如下所示。

保存記錄的測試
第1步:保存測試用例可通過導航到 "File" >> "Save Test" 并將文件保存在選擇的位置。該文件保存為.HTML為默認值。
該測試也可以保存擴展名為 .HTM,.SHTML和.XHTML。
保存測試套件
測試套件是可以作為一個單獨的實體來執行測試的集合。
步驟1:創建一個測試套件可通過導航到 "File" >> "New Test Suite" 如下所示:

步驟2:該測試可以通過選擇選項來記錄,一個接一個 從 "File" 菜單中的"New Test Case" .
步驟3:個人測試使用單獨的名稱來保存 "Test Suite".

執行記錄的測試
所記錄的腳本,執行的任何腳本可通過單擊在工具欄中的按鈕 "Play entire suite" 或 "Play current test" 。
第1步: 運行狀態可以可以看出,在顯示的通過和失敗的測試號狀態窗格。
第2步:一旦步執行,用戶可以看到結果在“Log”窗格。
第3步:在執行每個步驟之后,測試步驟的背景變成“綠色”,如果獲得通過如果失敗則為“紅”,,如下圖所示。

Selenium IDE 測試
調試是為了發現和修復測試腳本,任何腳本開發的共同步驟是錯誤的處理。為了使這一過程更加穩固,我們可以使用Selenium IDE的一個插件叫“Power Debugger”
Step 1 : 安裝Selenium IDE的Power Debugger,導航到 https://addons.mozilla.org/en-US/firefox/addon/power-debugger-selenium-ide/ 然后點擊 "Add to Firefox" 鏈接如下所示:

Step 2 : 現在啟動 'Selenium IDE' 會發新的圖標, "Pause on Fail" 在錄制工具欄,如下圖所示。點擊它為 ON。 當再次點擊,將它打開為"OFF"。

Step 3 : 用戶可以打開 "pause on fail" 開或關在任何時間即使測試運行
Step 4 : 一旦測試在暫停的情況下,由于步驟中有一個失敗,可以使用通常的暫停/步按鈕繼續執行測試。如果故障是在任何測試的情況下,最后一個命令執行不會被暫停。
Step 5 : 我們還可以使用斷點來了解在這過程中到底發生了什么。插入一個特定步驟一個斷點,執行從上下文“右鍵”,選擇“toggle Break Yiibai”相關菜單。

Step 6 : 插入斷點則顯示暫停圖標,特定步驟如下所示。

Step 7 : 當我們執行該腳本,該腳本將暫停執行插入斷點的地方。這將有助于計算一個元素等的值/表示在用戶執行過程中。

Selenium - IDE模式匹配
在Selenium IDE中,如定位器,模式是selenium中經常使用的一種類型的參數。它允許用戶描述特殊字符的模式。很多時候,我們想核實文字是動態的,在這種情況下,模式匹配是非常有用的。
模式匹配是用于所有驗證點命令 - VerifyTextPresent,verifyTitle,verifyAlert,assertConfirmation,verifyText和verifyPrompt
有三種方法來定義一個模式 - 通配符,正則表達式和精確。
通配符
通配已經在Linux或Windows使用的文件匹配模式,而尋找一個特定的文件類型,如* doc或*.JPG,大多數技術人員。但通配硒只支持三個特殊字符:*,?和[]。
-
* - 匹配任何數目的字符。
-
? - 匹配單個字符。
-
[ ] - 所謂字符類,可以匹配括號內發現的任何單個字符。 [0-9]匹配任何數字
要指定selenium 命令glob,前綴與關鍵字的模式'glob :“。例如,如果想搜索的文本“tax year 2013”或“tax year 2014”,那么可以使用“tax year *”來代替,如下圖所示。
然而關鍵字的用法“glob:”是可選的,而指定文本模式,因為Selenium的匹配模式是默認。
命令 | 目標 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyTextPresent | glob: tax year * |
精確模式
模式帶有前綴“exact:'能匹配給定的文本。用戶希望字符串值精確匹配,即沒有globe 的操作符,我們可以使用“exact”的模式如下圖所示。在這個例子中,操作符'*'將作為普通字符,而不是一個模式匹配通配符。
命令 | 目標 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyValue | exact: *.doc |
正則表達式模式
正則表達式是當中匹配技術中可用的模式是最有用的。Selenium 支持完整的Java語言支持reugular表達模式。因此,用戶通過不再受限于*,?和[]匹配模式。
要使用正則表達式模式,我們需要與任何前綴“regexp:”或“regexpi”。前綴“regexpi”是不區分大小寫的。 glob: 和exact: 模式是正則表達式模式的子集。一切完成使用 glob: 和exact:可以完成與正則表達式。
示例
例如,下面將測試,如果與ID“name”輸入的字段中包含字符串“tax year”,'Tax Year' 或 'tax Year'。
命令 | 目標 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyValue | id=name | regexp:[Tt]ax ([Yy]ear) |
Selenium用戶擴展
這很容易擴展Selenium IDE加入自定義操作,斷言和定位,策略,這是通過添加方法,在JavaScript的幫助下Selenium 對象原型。在啟動時,Selenium會自動尋找通過這些原型方法,使用名稱的模式來識別哪些是行動,斷言和定位器。
讓我們使用JavaScript添加一個'while'循環在Selenium IDE。
步驟 1 : 要添加js文件,首先導航到https://github.com/darrenderidder/sideflow/blob/master/sideflow.js和復制腳本和地點將其保存在本地文件夾下為 “sideflow.js”,如下圖所示。

第2步:現在啟動“Selenium IDE”,然后導航到"Options" >> "Options",如下圖所示。

第3步:點擊“Browse”按鈕下的“Selenium Core Extensions”區域產并指向我們已經保存在第1步中的js文件。

第4步:重新啟動Selenium IDE。
第5步:現在將有機會獲得一些更多的命令,如 "Label" "While"等
第6步:現在,我們創造出在Selenium IDE內的循環,這是能夠執行的,如下圖所示。

Selenium IDE- 不同的瀏覽器
Selenium IDE腳本只能對火狐的工具Firefox插件運行測試。使用Selenium-IDE開發的測試可以對其他瀏覽器所保存為Selenium網絡驅動器或硒的遠程控制指令碼執行。腳本只能對火狐的工具Firefox插件運行測試。使用Selenium-IDE開發的測試可以對其他瀏覽器所保存為Selenium網絡驅動器或硒的遠程控制指令碼執行。更多關于Selenium的webdriver和Selenium的遠程控制,在后面的章節有詳細講解。
第1步:打開Selenium IDE任何已保存的測試
第2步:定位到“File”菜單,并選擇“Export Test Suite As”,而選擇將被列出。

步驟3:現在讓我們導出腳本“WebDriver”,并將其保存為同樣的名稱。
第4步:如下圖所示,顯示保存webdriver文件。
