Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本
一、先来看一个小DEMO
通过上一篇博文《Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署》的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解;
图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 "脚本运行完毕!"
图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
欢迎交流!