基於Ruby的watir-webdriver自動化測試方案與實施(一)


 

為什么要實施自動化測試?

•應用系統日趨復雜的客觀要求

      一個不可避免的問題是,應用系統變得日趨復雜,並且造成了更大的風險。測試消耗的成本越來越高,花費的時間也越來越長。而成本與時間是有限的。為了在限制的成本與時間范圍內,控制發布的軟件產品的質量,測試人員被要求在盡量短的時間內對軟件進行足夠的測試。

•避免重復測試的主觀要求

     迭代式開發過程:目前的軟件開發或多或少使用了迭代式開發過程,這就導致了我們需要進行一輪又一輪的測試。

     回歸測試:為了檢驗軟件版本是否正確,或者當發現軟件中出現了一個或多個以前曾經被修復的缺陷時,不可避免的需要進行回歸性的測試。

自動化測試實施失敗的因素?

1.期望值過高。就像管理人員要求完全測試一樣,期望100%的測試自動化,也同樣是一個不現實的需求。
1.自動化的收益和成本:

        成本=用例的開發+用例的維護

        收益 = 重復運行次數 (時間) + 節約的時間

自動化測試的成長過程?

Testing often begins as freestyle, expands toward scripted.

測試總是從自由式的探索開始,朝腳本化方向擴張

自動化測試的應用時機?

 

重頭戲

測試方案設計

1 自動化測試的功能方案設計的流程:

             操作對象—>對象屬性—>功能實現—>結果驗證

2 自動化測試的功能方案設計操作用例圖:

Web對象的識別—Watir-WebDriver

 

•輸入框 input
•按鈕 button
•下拉框 select
• 鏈接 link
•點擊 click
•單選 radio
•多選 checkbox
•模擬鍵盤 send_keys :enter 

自動化測試開放平台框架設計

自動化測試框架的用例設計示例

•一、基於ruby的watir-webdriver開發
•二、統一預置參數輸入規則,提供規則模板,做到一個用例一個類,一個方法一個輸出。(一個類可以多個方法)
•三、統一輸出規則,比如:①[info]②TiStone ③Login successful!④001011

  ①   [Info]:代表該用例執行成功![error]代表失敗![warn]代表警告!

  ②   TiStone:代表執行用例名稱

  ③   Login successful!:描述或捕獲的value值,以“!”結尾

  ④   001011:返回碼

•四、統一用例名稱,應與輸出②保持一致
•五、入參統一通過RubyBean介入
•六、瀏覽器實例化、被測系統跳轉、用戶登錄、瀏覽器實例化等統一繼承Tools工具類
 
自動化測試框架的Control設計示例
•一、一個用例對應一個Control
•二、效驗輸出,判斷用例執行成敗,根據規則關聯Linux服務器捕獲相關日志、配置文件等分析失敗原因,縮減定位區域范圍。
•三、對比數據,關聯MySql查詢數據,對比web捕獲value值。
 
自動化測試框架的Tools設計示例
•一、封裝常用工具類
•二、Linux與MySql業務接口
•三、面向對象,實現繼承Tools,降低用例開發難度
 
自動化測試框架的Model設計示例
•一、提供統一執行、單一執行與批量執行模式
•二、關聯JAVA前端,通過RubyBean實現兩端交互
自動化測試框架的JAVA前端設計示例
•一、通過被測系統與ruby節點

  被測系統:需要測試的系統

  Ruby節點:實現前端與底層ruby關聯(可選)

•二、用例管理

  提供創建用例節點

  提供上傳指定節點自動化用例

•三、用戶管理
自動化測試框架的結果展示設計示例
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM