zoukankan      html  css  js  c++  java
  • Web自动化测试框架Watir(基于Ruby)

    一、先来看一个小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

    欢迎交流!

  • 相关阅读:
    SpringMVC的下载
    上传的前台实现
    SpringMVC自定义视图解析器的使用
    SpringMVC的Model对象的使用
    SpringMVC中使用作用域对象完成数据的流转
    SpringMVC的响应介绍
    SpringMVC的静态资源放行配置
    SpringMVC的静态资源放行
    SpringMVC的编码过滤器配置
    pymysql
  • 原文地址:https://www.cnblogs.com/zs8861/p/4062145.html
Copyright © 2011-2022 走看看