Web自動化測試入門

  web自動化測試html

 

 

目錄java

1、 自動化測試基本介紹 2web

2、 Web自動化工具 3瀏覽器

3、 Selenium介紹 4服務器

4、 Selenium WebDriver經常使用API 4cookie

5、 TestNG 6session

6、 環境搭建 8多線程

1、自動化測試基本介紹

1 自動化測試概述:併發

什麼是自動化測試?通常說來全部能替代人工測試的方式都屬於自動化測試,即經過工具和腳原本模擬人執行用例的過程。框架

 

2 自動化測試的做用

  • 減小軟件測試時間與成本改進軟件質量
  • 經過擴大測試覆蓋率增強測試工做
  • 進行手動測試難以完成的、須要更高的成本、更長的計劃、更高的質量的任務
  • 迭代更新較少,但仍需測試人員維護的,經過自動化解放人力

 

3 自動化測試的主要應用:

  • 冒煙測試(主業務流程)
  • 迴歸測試
  • 性能測試
  • 兼容性測試 (一套測試腳本,多個平臺執行)
  • 完成手動測試沒法完成的工做下班後無人值守測試

 

4 web自動化實現的目標:

(一)原則:

  • 編寫自動化測試用例庫,根據用例庫裏面的用例編寫測試用例。
  • 提升測試效率,下降測試成本
  • 重複性較強的用例用自動化實現
  • 快速的迴歸測試,提升版本發佈的速度和質量
  • 功能覆蓋率達到要求
  • 測試具備移植性和可重複性

(二)實施策略(持續集成):

  • 框架的選擇
  • 環境搭建
  • case編寫:提取公共模塊、提取公共參數、功能邏輯熟悉
  • log輸出
  • 報告輸出
  • Jenkins持續集成:定時集成、發送郵件

2、Web自動化工具

1 web自動化工具的選擇:

市場上自動化工具分爲開源和和商用付費兩種,下面提供兩種類型主流的seleniumQTP對比

 

 

 

最終選擇:selenium+IDEAjava+maven+testng+jenkins

3、Selenium介紹

(一)selenium 測試原理:

 

  • 在自動化測試過程當中,存在三部分組件:客戶端腳本+瀏覽器驅動+瀏覽器終端。
  • 驅動文件,以geckodriver.exe爲例,這個可執行的驅動文件啓動後,至關於一個暴露了一系列接口的服務器,監聽某一端口
  • 客戶端的操做(訪問頁面,定位元素,輸入數據,點擊按鈕等)都是封裝成了接口請求(eg/session/xx/yy),而後提交到驅動服務器。
  • 驅動服務器接收到客戶端的請求後,再跟終端瀏覽器交互。
  • 終端瀏覽器作出相應操做(操做元素、甚至瀏覽器自己:截屏、窗口、安裝插件證書)

 

 

 

(二)selenium 工具套件簡單介紹

  • Selenium WebDriver:面向對象API。
  • Selenium IDE(集成開發環境):FireFox插件,用於提供圖形化界面來錄製和回放腳本,插件只是用來模擬原型的工具,並不但願測試工程師使用此工具用來運行大批量的測試腳本。此插件須要使用第三方的javaScript代碼庫才能支持循壞和條件判斷
  • Selenium-Grid能夠在多個測試環境以併發的方式執行測試腳本,實現腳本的併發執行,縮短大量測試腳本的執行時間。

4、Selenium WebDriver經常使用API

(一)selenium WebDriver經常使用基礎API

(一) 瀏覽器操做

  • 加載瀏覽器驅動打開頁面

driver = new FirefoxDriver();
String baseUrl = "http://oa2.midairen.com/index.html";
driver.get(baseUrl);

  • 關閉瀏覽器:

driver.close();//關閉瀏覽器

  • 最大化窗口:

driver.manage().window().maximize();

  • 後退到前一頁:

driver.navigate().back();

  • 前進到後一頁: 

driver.navigate().forward();

  • 刷新頁面: 

driver.navigate().refresh();

  • 得到title並打印

String title =driver.getTitle();

  • 殺掉Windows的瀏覽器進程
  • 當前瀏覽器窗口截屏(比較截屏)
  • 操做瀏覽器的cookie

 

(二) 頁面操做

  • 獲取頁面的源代碼
  • 獲取頁面的URL地址
  • 在輸入框中清除原有的文字
  • 在輸入框中輸入指定內容
  • 單擊按鈕
  • 雙擊某個元素
  • 操做單選下拉列表
  • 操做單選框
  • 操做複選框
  • 檢查元素文本內容是否出現
  • 執行JS腳本
  • 操做iframe中的頁面元素
  • 操做富文本

 

(三) 元素定位的方法:

 

 

 

5、TestNG

(一)TestNG基本介紹:

TestNGJava中的一個測試框架,是一個目前很流行實用的單元測試框架,有完善的用例管理模塊,配合Maven可以很方便管理依賴第三方插件。使用TestNG能夠作功能、接口、單元、集成的自動化測試,最多見的是結合selenium作功能自動化測試,它使用Java註釋去寫測試方法。

測試人員通常用TestNG來寫自動化測試,開發人員通常用Junit寫單元測試,TestNG適合測試人員使用的主要緣由:TestNG更適合複雜的集成測試。

  

(二) testNG的特色:

  • 註解
  • TestNG使用Java和麪向對象的功能
  • 支持綜合類測試(例如,默認狀況下,沒有必要建立一個新的測試來做爲每一個測試方法的類的實例)
  • 獨立的編譯時間測試代碼運行時配置/數據信息
  • 靈活的運行時配置
  • 支持依賴測試方法,並行測試,負載測試,局部故障
  • 靈活的插件API
  • 支持多線程測試

 

(三) 註解:

TestNG經常使用的測試用例組織結構由test Suite-test-測試class-測試方法。Test suite有一個或者多個test組成,test由一個或者多個測試class組成,一個測試class有一個或者多個測試方法組成。運用不一樣層級的測試用例時,課經過不一樣註解實現測試前的初始化工做,測試用例執行工做和測試後的清理工做。

經常使用註解以下:

      

 

 

 

(四) 依賴測試

     某些複雜的測試場景須要按照某個特定的順序執行測試用例,一以此保證某個特定順序執行測試用例,此測試場景運行需求稱爲依賴測試。經過依賴測試,不一樣的測試方法間共享數據和程序狀態。使用dependsOnMethods參數 實現。

@Test(dependsOnMethods = {"testcase1"})

 

 

(五) 斷言

      在執行自動化測試用例的時候,咱們須要自動判斷用例執行完成後得到的輸出值是否與預期值一致,這個時候就須要用到斷言功能。TestNG中提供了一個Assert類:org.testng.AsserTestNG中提供了一個Assert類,org.testng.Assert類是做爲放置一系列斷言的靜態方法的容器。

Assert.assertTrue(select1.isDisplayed());//斷言判斷select1元素是否在頁面存在

經常使用的斷言:

  • assertTrue:判斷是否爲true。
  • AssertFALSE:判斷是否爲FALSE。
  • AssertNull:判斷是否爲空
  • AssertNoNull:判斷是否不爲空
  • AssetEquals:判斷是否相等
  • AssertNoEquals:判斷是否不相等

6、環境搭建

見另外一博文:http://www.javashuo.com/article/p-xlvfhomf-u.html

相關文章
相關標籤/搜索