基于Ruby的watir-webdriver自动化测试方案与实施(四)
生活随笔
收集整理的這篇文章主要介紹了
基于Ruby的watir-webdriver自动化测试方案与实施(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接著基于Ruby的watir-webdriver自動化測試方案與實施(三) http://www.cnblogs.com/Javame/p/4159468.html 繼續 ... ... 首先回憶下我們的系統架構,然后談談具體的實現。 基于ruby的watir-webdriver開發 統一預置參數輸入規則,提供規則模板,做到一個用例一個類,一個方法一個輸出。(一個類可以多個方法) 統一輸出規則,比如:①[info]②TiStone ③Login successful!④001011 一個用例對應一個Control 效驗輸出,判斷用例執行成敗,根據規則關聯Linux服務器捕獲相關日志、配置文件等分析失敗原因,縮減定位區域范圍。 對比數據,關聯MySql查詢數據,對比web捕獲value值。 封裝工具類 關聯Linux與MySql 提供測試用例支持,降低用例開發難度 控制用例執行與展示
該自動化測試框架分三個模塊:Test用例、Control控制層、Tools工具類、model總控。
Test用例
①?? [Info]:代表該用例執行成功![error]代表失敗![warn]代表警告!
②?? TiStone:代表執行用例名稱
③?? Login successful!:描述或捕獲的value值,以“!”結尾
④?? 001011:返回碼
4.統一用例名稱,應與輸出②保持一致
Control控制層
Tools工具類
Index總控
方案設計
Test用例
涉及依賴:
require 'watir-webdriver' require 'watir-webdriver-performance'頁面加載性能監控
1.times do b.goto("https://192.168.10.1/web")load_secs = b.performance.summary[:response_time]/1000puts "Load Time: #{load_secs} seconds."End?
功能成敗判別
if b.text.include? 'T_100M'#捕獲web屬性value值#后續操作puts "①[info]②TiStone ③Login successful!000000"else#后續操作#輸出錯誤碼puts "①[error]②TiStone ③Login failed!001011"end?
參數化提取
class BasicNumberdef initialize(number,name)@number = number@name = nameenddef add(x)@number + xend endControl控制層
涉及依賴:
load 'Linux.rb' load 'MySql.rb'?
具體實現與Tools通信,做一個信息傳輸的樞紐。
Tools工具類
涉及依賴:
require 'net/ssh' require 'scp/ssh' require "test/unit"?
關聯Linux
#ip/用戶名/密碼host = "192.168.48.233"username = "root"password = "root"#調用linux命令server_cmd1 = 'tail -1000 /home/log/web.log | grep ERROR'server_shell= 'sh /home/wyong/w.sh'?
關聯MySql
具體實現略…
?
單元測試
class TC_MyTest < Test::Unit::TestCasedef test_addn=BasicNumber.new(10)assert_equal(134,n.add(4),"This test about add is failure!") endendmodel總控
涉及依賴:
load Control_用例名稱.rb'?
統一調用
t = Control_用例名稱.newtest_methods = t.public_methods.grep(/^test_/)test_methods.each do |test|t.send(test) end?
轉載于:https://www.cnblogs.com/Javame/p/4164570.html
總結
以上是生活随笔為你收集整理的基于Ruby的watir-webdriver自动化测试方案与实施(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (软件工程复习核心重点)第三章需求分析-
- 下一篇: 计算机网络之数据链路层:17、PPP协议