總網頁瀏覽量

關於我自己

我的相片
人生的必修課是接受無常,人生的選修課是放下執著。

2016年6月21日 星期二

About 自動化測試

為什麼要用自動化測試工具?

  • 大量機械的、重复性的回歸測試;
  • 結果的正確性不依賴主觀判斷的測試;
  • 需要模擬大量數據、大量並發量的測試;
  • 需要不間斷執行的測試(比如7*24小時持續執行);
  • 需要短時間內完成的大量測試用例執行(比如完整的功能回歸測試);

自動化測試工具
工具名稱發布公司
Rational Functional TesterIBM
QuickTest ProfessionalHP
Rational RobotIBM
SilkTestMicro Focus
SeleniumOpen Source
WatirOpen 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
JavaPython
  • JUnit – Common testing framework.
  • TestNG – TestNG – Testing framework.
  • unittest – Python內建的 unitTest
  • unittest2
  • pytest – 負責 unitTest執行與其他模組,例如測試報告。.
  • nosetests – 負責 unitTest執行與其他模組,例如測試報告。.
  • ddt – Data-Driven tests with unittest
我們主要透過 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的格式。
JavaPython
針對BDD開發來說,Python和 Java 伯仲之間。沒有明顯的差異。

Web UI 測試

Web UI 的測試使用比較廣泛的是 Selenium,除了 Selenium之外還有哪些選擇呢?
JavaPython

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一些基礎的東西就將這些。下一篇內容在準備中。







沒有留言:

張貼留言