watir

 

gem update --system

gem install watir

 

Successfully installed watir-5.0.0
Installing ri documentation for commonwatir-4.0.0
Installing ri documentation for websocket-1.2.1
Installing ri documentation for rubyzip-1.1.7
Installing ri documentation for selenium-webdriver-2.45.0
Installing ri documentation for watir-webdriver-0.7.0
Installing ri documentation for watir-5.0.0
# Watir 是一个使用 Ruby 实现的开源Web 自动化测试框架,
# 相对于那些庞大的商业工具来说,它很小巧,也很灵活,提供的功能也足够用

require 'watir-webdriver'
require 'test/unit'

# 开发测试案例(Developing Test Cases)
# 1.打开编辑器
# 2.以.rb为你的文件扩展名
# 3.在测试文件的第一句写上“require 'watir'”,确保可以访问Watir工具。
# 4.打开浏览器并转到要测试的应用
# 5.与之交互并设计你的testcase
# 6.在测试脚本中使用Watir方法
# 7.验证结果

# 与网页交互(Interacting With a Web Page)
# 当使用Watir开发测试脚本的时候,通过给网页上的对象发送消息来与之交互。

class TC_myTest < Test::Unit::TestCase

    def setup
        @browser = Watir::Browser.new :firefox
        @browser.goto "http://baidu.com"
    end

    def teardown
        @browser.close
    end

    def test_a
        @browser.text_field(:name => 'wd').set("WebDriver rocks!")
        @browser.button(:id => 'su').click
        result = @browser.text_field(:id => "kw").value
        assert_equal(result,"WebDriver rocks!","This test is failure!")
    end

    def test_b
        @browser.text_field(:name => 'wd').set("WebDriver rocks!")
        @browser.button(:id => 'su').click
        result = @browser.text_field(:id => "kw").value
        assert_equal(result,"WebDriver rocks!","This test is failure!")
    end

end

# Running tests:
# ..
# Finished tests in 19.444131s, 0.1029 tests/s, 0.1029 assertions/s.
# 2 tests, 2 assertions, 0 failures, 0 errors, 0 skips

Watir 提供了对多种常见 Web 对象的识别和操作的支持,例如 Hyperlinks 的点击、Checkboxes 的选中和清除、Radio Buttons 的选中和清除、下拉框和列表框的选择、文本框的输入、各种按钮的点击以及 Frame 的访问、弹出窗口的控制等。当然,既然可以识别和操作这些对象,也可以访问这些对象,使测试结果的验证自动化。具体信息可以参见 Watir 用户手册。

Watir语法(Watir Syntax)
1.使用Watir工具,需要在脚本中加上
require 'watir'

2.创建一个IE的测试实例
ie = Watir::IE.new
或者在创建的同时直接转到页面
ie = Watir::IE.start("http://mytestsite";)
Watir使用start方法同时创建一个浏览器实例并转到一个页面。

3.页面导航
ie.goto("http://mytestsite";)

4.操纵Web页面对象,使用Text属性点击超链接
ie.link(:text , "Pickaxe").click
对应的HTML代码为:
<a href="http://pragmaticprogrammer.com/titles/ruby/";>Pickaxe</a>
4.1.2使用URL属性点击超链接
ie.link(:url , "http://pragmaticprogrammer.com/titles/ruby/";).click
对应的HTML代码为:
<a href="http://pragmaticprogrammer.com/titles/ruby/";>Test Site</a>

4.2复选框
4.2.1使用name属性设置复选框
ie.checkbox(:name, "checkme").set
4.2.2使用name属性清除复选框
ie.checkbox(:name, "checkme").clear
4.2.3使用name和value属性设置复选框
ie.checkbox(:name, "checkme", "1").set
4.2.4使用name和value属性清除复选框
ie.checkbox(:name, "checkme", "1").clear
对应的HTML代码为:
<input type = "checkbox" name = "checkme" value = "1">

4.3单选框
4.3.1使用name属性设置单选框
ie.radio(:name, "clickme").set
4.3.2使用name属性清除单选框
ie.radio(:name, "clickme").clear
4.3.3使用name和id属性设置单选框
ie.radio(:name, "clickme", "1").set
4.3.4使用name和id属性清除单选框
ie.radio(:name, "clickme", "1").clear
对应的HTML代码为:
<input type = "radio" name = "clickme" id = "1">

4.4下拉框
4.4.1使用name属性和值来设置下拉框
ie.select_list( :name , "selectme").select("is fun")
4.4.2使用name属性和值来清除下拉框
ie.select_list( :name , "selectme").clearSelection
对应的HTML代码为:
<select name = "selectme" >
    <option name=1>
    <option name=2>Web Testing
    <option name=3>in Ruby
    <option name=4>is fun
</select>

4.5在Web页面中输入数据

4.5.1使用文本输入框的那么属性设置输入内容
ie.text_field(:name, "typeinme").set("Watir World")
4.5.2清空文本输入框
ie.text_field(:name, "typeinme").clear
对应的HTML代码为:
<input type = "text" name = "typeinme" >

4.6从Web页面上提交数据
4.6.1按钮
4.6.1.1通过值或标题属性点击按钮
ie.button(:value, "Click Me").click
4.6.1.2通过name属性点击按钮
ie.button(:name, "clickme").click

对应的HTML代码为:
<input type = "button" name = "clickme" value = "Click Me">


4.6.2表单
4.6.2.1表单中的按钮
使用value或标题属性
ie.button(:value, "Submit").click
对应的HTML代码为:
<form action = "submit" name = "submitform" method="post">
    <input type = "submit" value = "Submit">
    </input>
</form>

4.6.2.2表单中的图片按钮
使用那么属性
ie.button(:name, "doit").click
对应的HTML代码为:
<form action = "submit" name = "doitform" method="post">
    <input type="image" src = "images/doit.gif" name = "doit">
</form>

 

你可能感兴趣的:(test,unit,watir)