Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本

一、先来看一个小DEMO

    通过上一篇博文《Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署》的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解;

图1-1 测试脚本:测试百度搜索

    代码如下:

#encoding: utf-8

#测试百度搜索
require 

‘watir‘

puts 

"打开浏览器"

browser 

= Watir::Browser.new

sleep 2

#延时2秒执行下一行 puts "进入百度首页"

browser.

goto ‘http://www.baidu.com/‘

sleep 2
puts 

"搜索“淘宝”"

browser.text_field(:name 

=> ‘wd‘).set ‘淘宝‘

browser.button(:value 

=> ‘百度一下‘).click sleep 2

puts 

"搜索“腾讯”"

browser.text_field(:name 

=> ‘wd‘).set ‘腾讯‘

browser.button(:value 

=> ‘百度一下‘).click sleep 2

puts 

"搜索“新浪微博”"

browser.text_field(:name 

=> ‘wd‘).set ‘新浪微博‘

browser.button(:value 

=> ‘百度一下‘).click sleep 2

puts 

"搜索“博客园”"

browser.text_field(:name 

=> ‘wd‘).set ‘博客园‘

browser.button(:value 

=> ‘百度一下‘).click sleep 2

puts 

"搜索“Google”"

browser.text_field(:name 

=> ‘wd‘).set ‘Google‘

browser.button(:value 

=> ‘百度一下‘).click puts "脚本运行完毕!"

图1-2 命令行输出情况

    输入命令:ruby testBaidu2.rb

    如果运行没有问题的话,运行脚本的过程中,IE浏览器会自动打开,自动进入百度页面,然后搜索“淘宝”等等等,并在命令行下输出如图1-2的输出字符串。

二、页面测试的各种方法

文本框: <INPUT id="email" name="_fmu.u._0.e" value="" />

     方法1: ie.text_field(:id,‘email‘).set("文本内容")
     方法2: ie.text_field(:name, ‘email‘).set("文本内容")
     方法3: ie.text_field(:name,"email").clear

下拉框:
    

<SELECT name="cert_no"> <OPTION value="身份证">身份证</OPTION> </SELECT>

    方法1: ie.select_list(:name,"cert_no").select("身份证")
    方法2: ie.select_list(:name,"cert_no").clearSelection

超链接:
    

<a href = "http://www.google.cn/">google</a> 方法1:ie.link(:text,"google").click 方法2:ie.link(:url,"http://www.google.cn/").click 复选框: <input type = "checkbox" name = "checkme" value = "1"> 方法1: ie.checkbox(:name,"checkme").set 方法2: ie.checkbox(:name,"checkme").clear 方法3: values = ie.checkbox(:name,"checkme").value <input type = "checkbox" name = "checkme" value = "2"> #多个同名的复选框处理 方法1: ie.checkbox(:name,"checkme","2").set 方法2: ie.checkbox(:name,"checkme","2").clear 单选框: <input type = "radio" name = "clickme" id = "1"> 方法1: ie.radio(:name, "clickme").set 方法2: ie.radio(:name, "clickme").clear 一般按钮: <input type = "button" name = "clickme" value = "Click Me"> 方法1: ie.button(:value, "Click Me").click 方法2: ie.button(:name,"clickme").click submit按钮: <form action = "submit" name = "submitform" method = "post"> <input type = "submit" value = "Submit"></input> </form> 方法: ie.button(:value."Submit").click 图片按钮: <form action ="submit" name = "doitform" method = "post"> <input type = "image" src = "images/doit.gif" name = "doit"> </form> 方法:ie.button(:name, "doit").click Form中无按钮: <form action = "login" name = "loginform" method = "get"> <input name = "username" type = "text"></input> </form> 方法1:ie.form(:name,"loginform").submit 方法2:ie.form(:action,"login").submit 获取隐含对象值: <INPUT type=hidden value="您的Email" name="field1">


     方法:values = ie.hidden(:name,‘field1‘).value
             

获取窗口对象:
    方法1: ie2 = Watir::IE.attach(:url,‘http://www.google.cn/‘)   #根据URL获取
    方法2: ie3 = Watir::IE.attach(:title,‘Google‘)                #根据窗口标题获取
    方法3: ie4 = Watir::IE.attach(:title, /google.cn/)            #正则表达式匹配获取
            

URL编码:
    require ‘cgi‘
    string =  "URL编码"
    string = CGI::escape(string)
    puts string                 # 转换结果: URL%B1%E0%C2%EB
                

URL解码:
    require ‘cgi‘
    string =  "URL%BD%E2%C2%EB"
    string = CGI::unescape(string)
    puts string                  # 转换结果:URL解码

三、本章总结

    通过本章内容,可以初步的应用Watir对Web页面进行各种测试。

转载须知:

请尊重本人知识产权和劳动成果,本文可自由转载,请注明出处:

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

联系邮箱:[email protected]

欢迎交流!

时间: 2024-10-24 03:48:28

Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本的相关文章

web前端开发利器——基于ruby的sass,compass和Dreamever+emmet插件

引言:web前端的html页面和css文件有时写起来会很麻烦,但是借助一些工具能够帮助我们轻松的构建相应的页面.sass是css的一款开发工具,有相应的语法,可以有逻辑和简洁编写css代码.本文介绍的主要是基于Dreamever cs5加上emmet插件快速编写简洁html页. 1. ruby安装与配置 ruby可以从百度搜索中的百度软件安装中心找到或者官网下载.安装很简单,以.exe文件进行安装,直接进行下一步安装就行.安装完成之后,在命令行窗口中输入 ruby -v,如果显示了相应的版本说明

基于界面自动化测试框架的4个发展阶段

(1)无框架阶段(即简单的录制/回放) 在早期,自动化测试并没有框架这一说,自动化测试只是简单的录制/回放,由工具录制并记录操作的过 程或数据,并形成脚本.通过对脚本的回放重复人工操作的过程.这种模式脚本与数据混合在一起.站在软件开发的角度来看,这种开发耦合度高,我们知道软件工 程的思想,是高内聚低耦合.而简单的录制回放完全违背了这一思想,简单的录制回放,重用性非常低,同时维护成本非常高. (2)数据驱动框架阶段 无框架阶段最大的缺点就是脚本与数据混合在一起.为了解决这一问题,自动化测试框架发展

RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramework中如何使用Selenium进行自动化测试. 本文章节目录: 1.Get Value 2.Get Webelements和Get Webelement 3.Get Window Titles 4.Go Back 和 Go To 5.Get List Items 6.Get Selected List

基于Python接口自动化测试框架(初级篇)附源码

引言 很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发接口自动化测试框架呢?相同之处就不说了,先说一下工具的局限性: 1.测试数据不可控:    接口虽然是对业务逻辑.程序代码的测试,而实际上是对数据的测试,调用接口输入一批数据,通过断言代码验证接口返回的数据,整个过程围绕数据测试.    如果返回的数据不是固定的,是变化的,那么断言失败,就无法知道是接口程序错误引起的,还是数据变化引起的,所以就需要进行测

自动化测试框架Cucumber和Robot Framework的实战对比

自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情况下),所以大部分具有很好开发技能的人员不是很愿意编写自动化用例.但由于软件规模的高速增长,人力资源的逐步稀缺,自动化测试已是势在必行. 对于自动化测试首先需要保证其功能是对客户有价值的和正确可用的.而这一切的基础就是用例要能测试客户的需求,期望,最好能让客户参与到测

谈自动化测试框架思想与构建

序言:也许到现在大家对所谓的"自动化测试框架"仍然觉得是一种神秘的东西,仍然觉得其与各位很远:其实不然,"自动化测试框架"从理念来说,并不复杂,但其之所以神秘,是因为其运用起来很是复杂,每个公司,每个部门其产品线,其运作流程都是不同的,所以就导致了在想运用"自动化测试框架"去完成自动化测试时产生了很多不定因素,导致了很多自动化测试项目的失败,让人对"自动化测试框架"开始敬而远之. 而自动化测试发展也有一段时间了,为什么到现在虽

打造轻量级自动化测试框架WebZ

一.什么是WebZ WebZ是我用Python写的“关键字驱动”的自动化测试框架,基于WebDriver. 设计该框架的初衷是:用自动化测试让测试人员从一些简单却重复的测试中解放出来.之所以用“关键字驱动”模式是因为我觉得这样能让测试人员(测试执行人员)快速上手,无需编写代码也能执行自动化测试. 二.为啥开源 WebZ的开发用到了一些现有的开源项目,我很感谢这些开源项目的作者,希望自己也能成为一名开源者,和大家分享自己的成果,一起交流技术.一起成长. 该项目的GitHub地址:https://g

selenium自动化测试框架之PO设计模式

面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. ##传统测试脚本的弊端 测试脚本分离,维护成本高 可扩展性差 复用性低等 PageObject设计模式 PO的核心要素: 在PO模式中抽象封装成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性. 每个一个page都继承BasePage,通过driver来管理本page中元素

一步一步教你搭建自动化测试框架——python篇

这两天用python写了一个自动化测试框架,取名为Auty.准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程—— Auty自动化测试框架第一篇——生成执行列表 Auty自动化测试框架第二篇——读取与执行脚本列表 Auty自动化测试框架第三篇——添加异常处理与日志收集 Auty自动化测试框架第四篇——生成测试结果报告 Auty自动化测试框架第五篇——自动化安装库与配置说明