Web自動化測試框架Watir(基於Ruby) - 第2章 使用Watir寫自動化測試腳本


一、先來看一個小DEMO

    通過上一篇博文《Web自動化測試框架Watir(基於Ruby) - 第1章 Windows下安裝與部署》的介紹,我們已經有了完整Watir運行環境,現在我們可以來試用一下Watir,來對其進一步了解;

image

圖1-1 測試腳本:測試百度搜索

    我們現在使用Watir來實現一個“百度搜索框測試”的自動測試,

    代碼如下:

 1 #encoding: utf-8
 2 #測試百度搜索
 3 require 'watir'
 4 puts "打開瀏覽器"
 5 browser = Watir::Browser.new  6 sleep 2 #延時2秒執行下一行
 7 puts "進入百度首頁"
 8 browser.goto 'http://www.baidu.com/'
 9 sleep 2
10 puts "搜索“淘寶”"
11 browser.text_field(:name => 'wd').set '淘寶'
12 browser.button(:value => '百度一下').click 13 sleep 2
14 puts "搜索“騰訊”"
15 browser.text_field(:name => 'wd').set '騰訊'
16 browser.button(:value => '百度一下').click 17 sleep 2
18 puts "搜索“新浪微博”"
19 browser.text_field(:name => 'wd').set '新浪微博'
20 browser.button(:value => '百度一下').click 21 sleep 2
22 puts "搜索“博客園”"
23 browser.text_field(:name => 'wd').set '博客園'
24 browser.button(:value => '百度一下').click 25 sleep 2
26 puts "搜索“Google”"
27 browser.text_field(:name => 'wd').set 'Google'
28 browser.button(:value => '百度一下').click 29 puts "腳本運行完畢!"

 

image

圖1-2 命令行輸出情況

    輸入命令:ruby testBaidu2.rb

    如果運行沒有問題的話,運行腳本的過程中,IE瀏覽器會自動打開,自動進入百度頁面,然后自動搜索“淘寶”,得到搜素結果等等等,並在命令行輸出如圖1-2的輸出字符串。

 

二、頁面對象的各種測試方法

 1 文本框:  2      <INPUT id="email" name="_fmu.u._0.e" value="" />
 3  方法1: ie.text_field(:id,'email').set("文本內容")  4  方法2: ie.text_field(:name, 'email').set("文本內容")  5  方法3: ie.text_field(:name,"email").clear  6 
 7 
 8 下拉框:  9     <SELECT name="cert_no"> 
10         <OPTION value="身份證">身份證</OPTION>
11     </SELECT>
12  方法1: ie.select_list(:name,"cert_no").select("身份證") 13  方法2: ie.select_list(:name,"cert_no").clearSelection 14 
15 
16 超鏈接: 17     <a href = "http://www.google.cn/">google</a> 
18  方法1:ie.link(:text,"google").click 19  方法2:ie.link(:url,"http://www.google.cn/").click 20 
21 
22 
23 復選框: 24     <input type = "checkbox" name = "checkme" value = "1"> 
25  方法1: ie.checkbox(:name,"checkme").set 26  方法2: ie.checkbox(:name,"checkme").clear 27  方法3: values = ie.checkbox(:name,"checkme").value 28     <input type = "checkbox" name = "checkme" value = "2"> 
29  #多個同名的復選框處理 30  方法1: ie.checkbox(:name,"checkme","2").set 31  方法2: ie.checkbox(:name,"checkme","2").clear 32 
33 
34 單選框: 35     <input type = "radio" name = "clickme" id = "1"> 
36  方法1: ie.radio(:name, "clickme").set 37  方法2: ie.radio(:name, "clickme").clear 38 
39 
40 一般按鈕: 41     <input type = "button" name = "clickme" value = "Click Me"> 
42  方法1: ie.button(:value, "Click Me").click 43  方法2: ie.button(:name,"clickme").click 44 
45 
46 submit按鈕: 47     <form action = "submit" name = "submitform" method = "post">
48        <input type = "submit" value = "Submit"></input>
49     </form> 
50  方法: ie.button(:value."Submit").click 51 
52 
53 圖片按鈕: 54     <form action ="submit" name = "doitform" method = "post">
55         <input type = "image" src = "images/doit.gif" name = "doit">
56     </form> 
57  方法:ie.button(:name, "doit").click 58 
59 
60 Form中無按鈕: 61     <form action = "login" name = "loginform" method = "get">
62         <input name = "username" type = "text"></input>
63     </form> 
64  方法1:ie.form(:name,"loginform").submit 65  方法2:ie.form(:action,"login").submit 66 
67 
68 獲取隱含對象值: 69     <INPUT type=hidden value="您的Email" name="field1">
70  方法:values = ie.hidden(:name,'field1').value 71 
72 
73 獲取窗口對象: 74  #根據URL獲取 75  方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/') 76  #根據窗口標題獲取 77  方法2: ie3 = Watir::IE.attach(:title,'Google') 78  #正則表達式匹配獲取 79  方法3: ie4 = Watir::IE.attach(:title, /google.cn/) 80 
81 
82 URL編碼: 83  require 'cgi' 84  string = "URL編碼" 85  string = CGI::escape(string) 86  puts string # 轉換結果: URL%B1%E0%C2%EB 87 
88 
89 URL解碼: 90  require 'cgi' 91  string = "URL%BD%E2%C2%EB" 92  string = CGI::unescape(string) 93        puts string  # 轉換結果:URL解碼

    如上代碼為Watir的常用的API接口函數,這里就不每個都進行測試,大家有興趣可以自己嘗試着去使用。

 

三、本章總結

    通過本章內容,可以初步的應用Watir對Web頁面進行各種測試。

 

轉載須知:

請尊重本人知識產權和勞動成果,本文可自由轉載,請注明出處:

博客網址:http://www.cnblogs.com/zs8861/

聯系郵箱:117711668@qq.com

歡迎交流!


免責聲明!

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



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