ruby+watir UI测试

时间:2022-07-28
本文章向大家介绍ruby+watir UI测试,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

UI自动化测试的方法很多,这次我介绍一下ruby环境的UI测试

说到UI测试,不得不说,大部分都会拿网易的163邮箱进行练习,不多介绍其他,直接上干货:

目录结构如图:

demo:项目目录
features:用来放置脚本目录,配置文件目录和用例
        Login_mail.feature 用例文件,格式是 feature
step:脚本目录.用来放置脚本,脚本格式是 rb
support:配置文件目录,配置文件格式为 rb
        config.rb 配置各种账号密码等
        env.rb  配置导入的包

用例编写格式

脚本编写格式

# encoding:UTF-8

当(/^打开浏览器,进入163邮箱登陆页面$/)do
$driver = Watir::Browser.new :chrome    
sleep(2)
$driver.window.maximize
sleep(2)
$driver.goto('https://mail.163.com')
end

那么(/^点击密码登陆,进入账号输入页$/)do
$driver.a(:id,'switchAccountLogin').click
end

那么(/^输入账户名,密码,进行登陆$/)do
$driver.div(:id,"loginDiv").iframe.text_field(:name,'email').set($user)
$driver.div(:id,'loginDiv').iframe.text_field(:name,'password').set($pwd)
$driver.div(:id,'loginDiv').iframe.a(:id,'dologin').click
end

为了防止乱码等问题首行,声明了一下编码格式 其他跟selenium操作基本类似;脚本中的字符必须要与用例中的字符完全相匹配(最好从用例中进行复制),否则会报错

配置文件格式

config.rb

# encoding: UTF-8
$user='xxx'
$pwd='xxx'

因为不在同一个文件中,一般都在各种配置前加上$,声明成全局变量,方便直接使用

env.rb

#encoding: UTF-8
require 'watir' 

在这个文件中引入要用的包,脚本文件就不用在引用,可以直接使用,也可以在这个文件中添加钩子代码,用于触发时执行(比如脚本执行过程中出现错误,进行截图等)

当然,你也可以封装各种函数在rb文件中.不需要导入可以直接使用,很方便

本地执行:

1. 打开cmd,切换到项目目录:
2. 输入命令:cucumber featuresLogin_mail.feature
3. 回车

如果要打印报告,输入:

cucumber featuresLogin_mail.feature -f html -o log.html

其中 f 用来指定报告格式, o用来指定生成报告的名称 也可以在报告名称前添加目录,用来指定报告存放的位置

生成的报告如图: