说到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操作基本类似;脚本中的字符必须要与用例中的字符完全相匹配(最好从用例中进行复制),否则会报错
# encoding: UTF-8
$user='xxx'
$pwd='xxx'
因为不在同一个文件中,一般都在各种配置前加上$,声明成全局变量,方便直接使用
#encoding: UTF-8
require 'watir'
在这个文件中引入要用的包,脚本文件就不用在引用,可以直接使用,也可以在这个文件中添加钩子代码,用于触发时执行(比如脚本执行过程中出现错误,进行截图等)
当然,你也可以封装各种函数在rb文件中.不需要导入可以直接使用,很方便
1. 打开cmd,切换到项目目录:
2. 输入命令:cucumber features\Login_mail.feature
3. 回车
如果要打印报告,输入:
cucumber features\Login_mail.feature -f html -o log.html
其中 f 用来指定报告格式, o用来指定生成报告的名称 也可以在报告名称前添加目录,用来指定报告存放的位置
生成的报告如图: