- 大量機械的、重复性的回歸測試;
- 結果的正確性不依賴主觀判斷的測試;
- 需要模擬大量數據、大量並發量的測試;
- 需要不間斷執行的測試(比如7*24小時持續執行);
- 需要短時間內完成的大量測試用例執行(比如完整的功能回歸測試);
自動化測試工具
工具名稱 | 發布公司 |
---|---|
Rational Functional Tester | IBM |
QuickTest Professional | HP |
Rational Robot | IBM |
SilkTest | Micro Focus |
Selenium | Open Source |
Watir | Open Source |
錄制腳本並不是自動化測試最優方案。
測桌面程序的工具有:QTP、 AutoRunner
測web應用的工具有:QTP、AutoRunner、Robot Framework、watir、selenium
功能測試工具有:QTP、Selenium等
性能測試工具有:LoadRunner、JMeter
*要學好QTP ,必須要掌握VBS腳本語言
*selenium 是支持java、python、ruby、php、C#、JavaScript
從語言易學性來講,首選ruby ,python
從語言應用廣度來講,首選java、C#、php
從語言相關測試技術成度(及資料)來講:ruby ,python ,java
Selenium是針對Web應用的開源自動化測試工具,通過編寫模擬用戶操作的腳本,它會打開瀏覽器對Web應用進行黑箱測試。可以方便的用於更正性測試、相容性測試、 穩定性測試。
- Selenium IDE
是一個用於錄制/回放測試腳本的Firefox附加組件,錄制的腳本可以生成基於Selenium RC的測試代碼(Java、Ruby、C#等)。适用於快速入門,不太適用於實際較大的測試項目;
Selenium IDE是一個火狐插件,可以錄製腳本,同時可將腳本轉換成不同腳本語言的腳本。Selenium IDE下載下來之後,打開火狐瀏覽器,然後把Selenium IDE這個壓縮包拖到火狐瀏覽器中,火狐瀏覽器自動提示安裝,選擇默認安裝即可。 - Selenium RC
RC由Server和Client組成兩部分組成,Server負責加載/關閉瀏覽器以及作為HTTP代理來訪問Web應用,Clinet支持多種編程語言和測試框架(TestNG、JUnit、NUnit等)。
- Selenium WebDriver
WebDriver作为Selenium2的核心特性提供比RC更簡潔易用的API,是官方推薦的RC替代方案。可以更好的支持動態網頁,不需要再額外启動一個獨立的Server。
- Selenium Grid
是Selenium的一個擴展工具,可以很方便地同時在多台機器上和異構環境中並行運行多個RC或WebDriver用例。
Selenium RC是通過在瀏覽器加載時“注入”JS函數來操縱後續的瀏覽器行为,Selenium WebDriver則通過直接調用各個瀏覽器內置的本地事件來達到這一目的。WebDriver目前已經作为W3C規範草案,提交由Google、Mozilla等瀏覽器廠商討論。
Selenium Server是Selenium的核心部分,它是用 JavaScript 編寫的,這使得測試腳本可以在受支持的瀏覽器中運行。下載下來的Selenium Server文件是jar包,安裝方法是,打開CMD,去到Selenium Server的路徑下,直接輸入: java -jar selenium-server-2.41.0.jar 即可完成安裝。 Selenium Client Drivers
WebDriver規範定義一組與平台、語言無關的接口,包括發現和操作頁面上的元素以及控制瀏覽器行为,主要用於支持Web應用的自動化測試。WebDriver的核心是通過findElement方法return DOM對象(WebElement),通過WebElement可以對DOM對象進行操作(獲取屬性、觸發事件等)。其中findElement方法需要的元素定位器(Locator)支持ID、XPath、CSS、超鏈接文本等多種方式。
“WebDriver”顧名思義就是“Web瀏覽器驅動”,它專注於解决如何通過外部命令(通常為測試用例)操作瀏覽器的問題。至於測試用例按照什麼順序執行、執行過程中如何傳遞數據、測試結果如何斷言、如何報告,則可以通過集成其它優秀的專業測試框架(比如,TestNG)來實現(WebDriver沒有必要重複造輪子)。
Selenium 自動化測試著重的是 End to End 的測試,
Selenium的自動化測試方式比較接近 Black Box的測試
因此產品開發使用 C, Java, Python都不會影響我們的測試,
↓資料來源:http://www.qa-knowhow.com/?p=3188
Java | Python |
我們主要透過 unitTest完成下列工作
- 定義測試個案 (每個 unit 就是一個測試個案)
- 執行測試個案 (區分priority的執行或是群組執行)
- 測試結果報告
Java 透過 TestNG可以完成上述所有工作。
相對來說 Python需要透過 unitTest + noseTests 或是 PyTest才可以完成。
Python的 unitTest本身並沒有提供豐富的測試結果報告 HTML or XML
另外 Java TestNG 還提供
- 多執行緒同步執行
- Data Driven Testing可以將測試資料定義在 XML
以結果來說Java 跟 Python接近相同的,
Java TestNG提供 all in one
但是Python要透過許多其他模組組合而成。
BDD (Behavior Driven Development)
什麼是 BDD呢? 簡單來說就是將測試程式寫成 user story的格式。
Java | Python |
|
針對BDD開發來說,Python和 Java 伯仲之間。沒有明顯的差異。
Web UI 測試
Web UI 的測試使用比較廣泛的是 Selenium,除了 Selenium之外還有哪些選擇呢?
Java | Python |
|
Java 的部分筆者推薦 Selenide
Python的部分筆者推薦 spinter
↓資料來源:http://icodding.blogspot.tw/2015/11/selenium-ide.html
1。文件:創建、打開和保存測試案例和測試案例集。編輯:複製、粘貼、刪除、撤銷和選擇測試案例中的所有命令。Options : 用於設置seleniunm IDE。
2。用來填寫被測網站的地址。
3。速度控制:控制案例的運行速度。
4。運行所有:運行一個測試案例集中的所有案例。
5。運行:運行當前選定的測試案例。
6。暫停/恢復:暫停和恢複測試案例執行。
7。單步:可以運行一個案例中的一行命令。
8。錄製:點擊之後,開始記錄你對瀏覽器的操作。
9。案例集列表。
10。測試腳本;table標籤:用表格形式展現命令及參數。source標籤:用原始方式展現,默認是HTML語言格式,也可以用其他語言展示。
11。查看腳本運行通過/失敗的個數。
12。當選中前命令對應參數。
13。日誌/參考/UI元素/Rollup
日誌:當你運行測試時,錯誤和信息將會自定顯示。
參考:當在表格中輸入和編輯selenese命令時,面板中會顯示對應的參考文檔。
UI元素/Rollup:參考幫助菜單中的,UI-Element Documentation。
----//編輯命令
selenium為我們錄製的腳本不是100%符合我們的需求的,所以,編輯錄製的腳本是必不可少的工作。
1. 編輯一行命令或註釋。
在Table標籤下選中某一行命令,命令由command、Target、value三部分組成。可以對這三部分內容那進行編輯。
2. 插入命令。
在某一條命令上右擊,選擇「insert new command」命令,就可以插入一個空白,然後對空白行進程編輯。
3. 插入註解
以上面同樣的方式右擊選擇「insert new comment」命令插入註解空白行,本行內容不被執行,可以幫助我們更好的理解腳本,插入的內容以紫色字體顯示。
4. 移動命令或註解
有時我們需要移動某行命令的順序,我們只需要左擊鼠標拖動到相應的位置即可。
----//錄製我們的第一個腳本
我們的錄製流程:
用火狐瀏覽器,打開一個新的標籤-----輸入谷歌網址(http://www.google.com.hk/)----在搜索框輸入:selenium----點擊「google搜索」按鈕。
註:注意開啟和關閉selenium IDE面板上的紅色圓形的錄製按鈕。
錄製的腳本:
----//調試腳本
1. 設置斷點。
要設置斷點,先選擇一行命令,點擊鼠標右鍵,在下拉菜單中選擇「Toggle Breakpoint」命令,點擊「運行」按鈕,腳本會運行到斷點處停止。用過myecilpse的debug功能來調試腳本的同學懂的!
2. 通過頁面源代碼來調試腳本
很多情況下,調試自動化測試案例都離不開查看頁面源代碼,我們可以借助firefox的firebug工具,關於firebug的安裝(瀏覽器菜單欄---工具---查看組件---搜索firebug---安裝並重啟瀏覽器即可)。
如:我們不確定或想獲得谷歌搜索按鈕的屬性。在按鈕上右擊---查看元素
在瀏覽器下方打開的firebug工具裡面,就可以查看按鈕代碼了。
3. 定位輔助
當selenium IDE錄製腳本時,它會存儲額外的信息,支持用戶挑選其他格式的定位器來代替默認格式的定位器,這種特殊性對於學習定位器很有用。
我們可以選擇其他的命令來代替「name=btnG」 命令,當然,腳本依然是可以運行的。
關於 selenium IDE一些基礎的東西就將這些。下一篇內容在準備中。
沒有留言:
張貼留言