web自動化測試的調研工作

 

序:此只是簡單的一個打醬油似的B/S架構的自動化測試調研,希望能對大家一點點啓發,最好集大家之所成能給我一些建議和啓發,萬分感謝


一、目的
爲了能夠提高B/S架構的應用程序測試的測試效率。
二、應用範圍
B/S架構的應用程序的應用功能測試與驗證測試。
三、工具選型與比較
3.1 主要應用工具介紹
主要應用的測試工具包括以下幾種
1)QTP, QuickTest Professional. 採用了關鍵詞驅動(Keyword-Driven)測試的理念,關鍵字驅動或者稱爲關鍵詞驅動(Keyword-Driven),是爲了解決通過錄制的方法來產生腳本的問題。就是先把所有需要的Web對象都添加到對象庫中,然後在關鍵字視圖中手動添加測試步驟.
2)RFT, Rational Functional Tester,是一個面向對象的、自動測試工具,它能夠測試各種應用程序。可以應用其進行WEB對象的抓取。
3)Selenium, ThoughtWorks 專門爲 Web 應用而開發的自動化測試工具,適合進行功能測試、驗收測試。
4)Watir ( Web Application Testing inRuby) 是一個優秀的開源工具,用於開發基於Web 應用的自動化測試程序。它使用Ruby 腳本語言,提供了輕量級的自動化測試程序框架和豐富的開發庫,有效地加速了自動化測試程序開發。
3.2、工具應用比較
1)、QTP採用關鍵詞驅動和描述性編程的方法,其成熟度廣,應用普及率較廣,框架搭建較簡單,但其價格昂貴,採用的是activex驅動模式,靈活性低,不易與自身平臺進行結合。
2)、RFT可以支持WEB自動化測試,但僅僅是對其對象的獲取,而且其還對C/S架構的APP支持,其靈活性低,價格昂貴,但其的自動化測試架構可以重用C/S類型的。自動化測試項目。
3)、selenium
 優點:a)其原理即基於WEB內核機制。其直接運行在瀏覽器之上,所見即所得,就像真實用戶所做的一樣。Selenium 的核心,也稱 browser bot,是用 JavaScript. 編寫的。這使得測試腳本可以在受支持的瀏覽器中運行。
      b)靈活性高,易整合到自己平臺,其測試用例可以採用兩種方式撰寫:test runner (HTML文件)和 driven(腳本語言編寫),其語言包括Java, .NET, Perl, Python 和 Ruby. 使用 driven 腳本,測試有一部分在瀏覽器之外運行,而如果使用 test runner 腳本的話,測試是完全在瀏覽器中運行的。
      c)開源,且應用較廣泛,有一定的技術基礎。
缺點:a)selenium不能簡單的處理WEB上一些第三方插件,例如:當要從Web 上下載一些東西,自然此時就會彈出一個“下載框”,由於那個框框是Windows 窗口,Selenium 是處理不了的,所以必須通過第三方的腳本處理。
      b)selenium是輕量的測試框架, 腳本所處理的測試用例構成簡單,其實質就是通過HTTP協議,發送請求(request)來完成測試用例,所以很困難處理業務邏輯關係強的測試用例。
3.3  應用總結
可以考慮先採用selenium進行預研究工作,將其輕量級的自動化框架搭建出來進行應用。

四、應用框架和策略
4.1 WEB自動化關注
1)Case的選擇
   儘量採用google提出的721原則,即70%的測試工作在底層接口測試和單元測試;20%的測試工作在集成測試;10%的測試工作在界面測試。
   因此,對於B/S架構自動化測試,原則上若能採用二層的機制(API與底層命令機制)的話,儘量用二層機制;若無,則採用第三層機制,且主要定位在功能測試。
2)對業務變更的處理
1) 使用不便的元素進行定位,ID/name。
2) 動態的ID好於沒有id,即儘量抓取WEB對象的唯一標示值去識別對象。
動態生成的ID,先利用Beautifulsoup等分析源碼,通過屬性,text(),css等定位到節點,然後獲取id,操作的時候直接利用這個id進行操作。 這樣好於直接在代碼中書寫xpath . UI MAP建立元素和一個別名的關聯,以xml或者配置的形式存儲,
當頁面發生改變的時候,只需要更改這個關聯文件即可。
因此,原則上要求研發人員在某些元素一定要設定id,name,並且不要改變。
展示的目的就是爲了確認。
4.2 框架的設計思想
主要分爲三層:
 業務(關鍵字、業務分層)
 數據(數據驅動、數據存儲)
 結果(結果驗證、結果報表)
因此,可以將selenium框架分爲三個層次:
 appObjects —— Web 頁面元素定位信息,如按鈕與文本框等;
 appLibs ——測試步驟中可複用的行爲;
 test cases ——由 tasks 組成的測試用例。
4.3 具體方案策略
1) selenium+eclipse+JUnit
a)、首先,工具包括:
Selenium IDE(可以結合Firefox進行錄製,然後生成腳本用例,包括:ruby、java等)
Selenium RC(可以進行腳本的編輯和對瀏覽器的控制,其實其即爲一個包,裏面封裝了對WEB進行控制的各種JS腳本,我們這裏採用JAVA包)
Eclipse(執行平臺)
b)、之後,可以利用IDE錄製生成腳本或者自己應用selenium的API編寫測試例腳本(JAVA)。
c)、啓動selenium server(java -jar selenium-server.jar 啓動selenium server)
d)、在Eclipse創建一個項目,右鍵項目build path,裏面加上junit.jar和selenium-java-client-driver.jar
e)、編寫Selenium測試用例,編寫一個JUNIT的單元測試,要構建一個Selenium,包括步驟:
 構建一個Selenium實例
 啓動Selenium實例
 執行Selenium命令,並驗證結果。要執行一個命令是通過調用Selenium實例的方法來完成的,具體有哪些命令可以參見JAVADOC
 關閉Selenium實例
框架設計可以如下圖所示:


2) selenium+TestNG
a) 框架如下圖所示:
 
b) 工具介紹:TestNG是一個設計用來簡化廣泛的測試需求的測試框架,從單元測試(隔離測試一個類)到集成測試(測試由有多個類多個包甚至多個外部框架組成的整個系統,例如運用服務器)。編寫一個測試的過程有三個典型步驟:
    * 編寫測試的 業務邏輯並在代碼中插入TestNG annotation。
    * 將測試信息添加到testng.xml文件或者build.xml中。
    * 運行TestNG。
c)、結合TestNG,可以提高其腳本用例的重用性,可以實現系統級別的測試,支持數據驅動,結果報表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章