接着基於Ruby的watir-webdriver自動化測試方案與實施(一)
繼續 ... ...
回顧
軟件自動化測試的概述
Web自動化測試的方案設計
功能方案設計
業務方案設計
Web自動化測試的方案實施
自動化測試腳本的錄制和編寫
自動化測試的執行和具體實現
測試操作和測試數據的回收
自動化測試腳本設計和錄制
•工具: WatirRecorder++
統一預置參數輸入規則,提供規則模板,做到一個用例一個類,一個方法一個輸出。(一個類可以多個方法)
•例子一: (實現hao123,搜索“ruby”功能)
require 'watir-webdriver' include Watir require 'test/unit' class TC_recorded < Test::Unit::TestCase def test_recorded @@b = Watir::Browser.new @@b.goto('http://www.hao123.com/') @@b.text_field(:name, 'word').set('ruby') @@b.text_field(:name, 'word').set('ruby') @@b.button(:value, '百度一下').click end end
自動化測試的具體實現
•具體實現在Tools工具類中,多以Linux、Mysql體現
•
•列子二: (通過linux查詢黑白名單是否生效)
class Linux < Mysql def initialize ( host ) @@host = host @@username = "root" @@password = "rootmengmeng“ def L.gethost return @@host end def L.getusername return @@username end def L.getpassword return @@password end def acl(ip) @name = ip a = "#{@name}" server_cmd1 = "{ echo ' acl -L'; sleep 2; echo -e '\n'; } | telnet 0 1234 | grep #{a}" ssh = Net::SSH.start(L.gethost, L.getusername, :password => L.getpassword) do |ssh| result = ssh.exec!(server_cmd1) @result=result ….. .…. end attr_writer :host
軟件自動化測試成本投入和風險分析
軟件自動化測試的成本投入
•腳本的維護成本:自動化的測試流程,使得腳本的維護成為自動化實施的一個關鍵性的依據。對於一個規范化的系統開發流程來說,實現測試的自動化是很有必要的。但是自動化的腳本維護使得我們的自動化測試在成本上變得較為昂貴。每一個系統的開發都是時刻隨着需求的變更而改變,然而在大多數的情況下,就是很微小的一點系統修改都會導致我們去大量的修改自動化的測試腳本。
(這就是我們為什么要引入架構的關系!)
我們的架構的好處就是業務與邏輯分開,就是頁面出現了更新或修改只需重新錄制或編寫新的用例即可,不會影響業務結果。
自動化測試的腳本的維護
•整個自動化測試開放平台分兩個部件:
JAVA前端(負責數據的預置、與執行的發起)
Ruby底層(負責業務的實現、與操作的執行)
•關於維護
JAVA前端所有配置參數都是動態獲取,后期業務變更無需修改
Ruby底層
Test用例層與Control控制層隨着需求的迭代,需要長期的進行維護
Tools工具層只會根據業務上有很大的變動而更改
othe無需更改
軟件自動化測試的風險分析
•風險的存在原因:
自動化測試只是針對系統的大部分主要功能進行了有效的測試和驗證,從而使得覆蓋的測試面較為狹窄,導致系統的有些隱藏問題無法發現。
•風險的減小建議:
在自動化測試的實現初期 ,設計好自動化的測試用例,把握好系統的重點功能及可能會出現的問題,進而再實現測試自動化。在現有條件下減小可預計的系統風險。
•目標:
在現有條件下減小可預計的系統測試風險。
說在最后的
1、自動化並不是全自動,需要花精力才能讓他自動化。
2、自動化工具不是萬能的,他也有自己的缺陷。
3、自動化永遠不可能取代人工的位置。
4、自動化腳本的維護有時是很致命的,需要有一定的經驗才能做好。
2、自動化工具不是萬能的,他也有自己的缺陷。
3、自動化永遠不可能取代人工的位置。
4、自動化腳本的維護有時是很致命的,需要有一定的經驗才能做好。