博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0到1,教你实现基于Ruby的watir-webdriver自动化测试
阅读量:5918 次
发布时间:2019-06-19

本文共 4727 字,大约阅读时间需要 15 分钟。

一、为什么选择Ruby【1】完全开源。【2】多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/2..【3】多线程:线程就是指在一个程序中处理若干控制流的功能。与OS提供的进程不同的是,线程可以共享内存空间。【4】完全面向对象。【5】不需要内存管理:具有垃圾回收(Garbage Collect, GC)功能,能自动回收不再使用的对象。【6】解释执行:其程序无需编译即可轻松执行。【7】功能强大的字符串操作/正则表达式。【8】具有异常处理功能。【9】可以直接访问OS:Ruby可以使用UNIX的绝大部分的系统调用。单独使用Ruby也可以进行系统编程。【10】动态类型语言:Ruby的变量没有类型,因此不必为类型匹配而烦恼。【11】动态语言:程序运行中,可以加入熟悉,行为,也可以重写方法。【12】支持操作符重写。【13】支持无限精度的数字。【14】丰富的库函数。【15】用模块进行混合插入(Max-in):Ruby舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。【16】语法简单:它是脚本语言,没有指针,学习曲线比较低。 Ruby吸取了perl的正则表达式,python的简单性可读性,smalltalk的纯面向对象语法和单继承,LISP的无穷嵌套的语法,java的线程….二、Ruby下载及安装下载: 傻瓜安装,下一步下一步...三、watir-webdriver安装1)必须先完成Ruby的安装;   2)打开“运行”,输入cmd进入控制台;   3)输入下面代码:    ruby -v 检查ruby是否是192    gem -v 检查gem的版本      gem update –system 更新版本      gem install watir 安装watir    gem install watir-webdriver 安装watir-webdriver注: 为了让Watir认识中文并操作文件上传,需要做下面的修改:      首先修改C:\ruby\lib\ruby\gems\1.9\gems\watir-xxx\watir\input_elements.rb文件,找到FileField类下的set方法,把原来的替换成       system(“rubyw –e \”require ‘win32ole’; @autoit=WIN32OLE.new(‘AutoItX3.Control’);waitresult=@autoit.WinWait’选择文件’,”,15;sleep 1;if waitresult==1\” –e\”@autoit.ControlSetText’选择文件’,”,’Edit1’,’#’;@autoit.ControlSend’选择文件’,”,’Button2’,”;\” –e \”end\””)集成eclipse1 安装开发工具,此次选择eclipse,加上RDT插件org.rubypeople.rdt-xxxx.zip2 eclipse下载地址:http://www.eclipse.org/downloads/3 RDT下载地址:http://update1.aptana.org/rdt/3.2/index.html4 安装好eclipse之后,打开eclipse面板,点Help -> Software Updates -> Available Software -> Add Site -> Archive -> 选中下载好的org.rubypeople.rdt-xxx.zip -> 点OK按钮。四、小试牛刀模拟打开浏览器,进入http://www.hao123.com/,在输入框输入"ruby",点击“百度一下”。   require 'watir-webdriver'     @@b = Watir::Browser.new     @@b.goto('http://www.hao123.com/')     @@b.text_field(:name, 'word').set('ruby')     @@b.button(:value, '百度一下').click将代码拷贝到一个test.rb文件中,打开cmd,执行ruby test.rb 运行。无误的话,将会弹出浏览器,自动模拟以上操作。注:watir-webdriver默认支持火狐浏览器,所以运行前先确保可以打开火狐浏览器。五、自动化测试方案与实施前两篇:软件自动化测试的概述           *Web自动化测试的方案设计功能方案设计业务方案设计自动化测试脚本的录制和编写  *自动化测试的执行和具体实现  *测试操作和测试数据的回收第三篇:(重点)编写脚本首先要学会捕获元素,接下来就要学习页面元素的捕获。第四篇:(升级)具体将框架的设计与理念第五篇:(难点)关于特殊控件捕获,异常控件分析,到页面各种属性的捕获方式。  六、Ruby语法积累【1】注释与分行:     #  从#开头到行尾是单行注释;     =begin     xxxx     =end  #是多行注释【2】分隔符:    ;分号:用来分隔一行中的多个语句。    () 圆括号:提高优先级;定义方法时容纳参数列表;      空格:分隔字符:在可省略()的地方,代替()    ,逗号:隔开多个参数;    .  点:将对象与它的方法隔开;    :: 紧连的两个冒号:域作用符,将模块(类)与它的常量隔开。【3】关键字:    模块定义:module    类定义:class    方法定义:def ,undef    检查类型:defined?    条件语句:if ,then ,else ,elsif ,case ,when ,unless    循环语句:for ,in ,while ,until ,next ,break ,do ,redo ,retry ,yield    逻辑判断:not ,and ,or    逻辑值和空值:true ,false ,nil    异常处理:rescue ,ensure    对象引用:super ,self    块的起始:begin/end    嵌入模块:BEGIN ,END    文件相关:__FILE__ , __LINE__    方法返回:return    别名:alias【4】运算符:优先级由高到低    [][]=      数组下标 数组元素赋值    **        乘幂    ! ~ + -     非 位非 一元加 负号    * / %      乘 除 模    + -        加 减    >> <<      右移 左移    &         位与    ^ |        位异或 位或    <= < > >=   小于等于 小于 大于 大于等于    <=> == === =~ != !~  各种相等判断    &&        短路与    ||         短路或    .. …        区间的开始点到结束点    ?:         三元条件运算符    = %= ~= /= -= += |= &= >>= <<= *= &&= ||= **=   各种赋值    defined?    检查类型    not        逻辑非    or and      逻辑或 逻辑与语言都是相同的,剩下的就不多说了,不懂谷歌不行就百度。推荐:我感觉最常用的,必须会的七、watir语法积累【1】文本框     方法1:ie.text_field(:id,’email’).set(“文本内容”)    方法2:ie.text_field(:name, ‘email’).set(“文本内容”)    方法3:ie.text_field(:name, “email”).clear【2】下拉框         方法1:ie.select_list(:name,”cert_no”).select(“身份证”)    方法2:ie.select_list(:name,”cert_no”).clearSelection【3】超链接 google    方法1:ie.link(:text,”word”).click    方法2:ie.link(:url,http://www.baidu.com/).click【4】复选框     方法1:ie.checkbox(:name,”checkme”).set    方法2:ie.checkbox(:name,”checkme”).clear    方法3:values = ie.checkbox(:name,”checkme”).value    多个同名复选框的处理:        方法1:ie.checkbox(:name,”checkme”,”2”).set    方法2:ie.checkbox(:name,”checkme”,”2”).clear【5】单选框     方法1:ie.radio(:name,”clickme”).set    方法2:ie.radio(:name,”clickme”).clear【6】一般按钮     方法1:ie.button(:value, “Click Me”).click    方法2:ie.button(:name,”clickme”).click【7】submit按钮    
方法:ie.button(:value,”Submit”).click【8】图片按钮
方法:ie.button(:name,”doit”).click【9】Form中无按钮
方法1:ie.form(:name,”loginform”).submit 方法2:ie.form(:action,”login”).submit【10】获取隐含对象值 方法:values = ie.hidden(:name,’field1’).value【11】获取窗口对象 方法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/) #正则表达式匹配获取【12】URL编码 require ‘cgi’ string = “URL编码” string = CGI::escape(string) puts string #转换结果:URL����【13】URL解码 require ‘cgi’ string = “URL����” string = CGI::(string) puts string #转换结果:URL解码八、欢迎加入我们的QQ群群号:160409929

 

 

转载地址:http://bmfvx.baihongyu.com/

你可能感兴趣的文章
Asp.Net 网站访问人数及在线人数
查看>>
机器人会偷走你的饭碗吗——医生篇
查看>>
Android操作sd卡
查看>>
团队作业(五)-笔记app top5
查看>>
CTF之MD5相等值不相等
查看>>
不同内核浏览器的差异以及浏览器渲染简介
查看>>
Mysql存储过程语法
查看>>
MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel mode
查看>>
nyoj89 汉诺塔(二)
查看>>
spark、hive、impala、hbase、gbase在结构化数据方面查询原理对比(含parquet/orc)
查看>>
flask 部署外部访问
查看>>
单元测试
查看>>
Python 中 str 和 repr 的区别
查看>>
pip制作离线安装包
查看>>
vivado中如何使用chipscope
查看>>
jQuery的DOM操作
查看>>
appium-desktop 1.6.2 使用
查看>>
C# 怎么把类文件如(XXX.cs)转为dll文件
查看>>
centos上如何安装git
查看>>
LA 3415 (二分图+最大独立集)
查看>>