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用来指定生成报告的名称 也可以在报告名称前添加目录,用来指定报告存放的位置
生成的报告如图:
- JVM活学活用——GC算法 垃圾收集器
- BZOJ1101: [POI2007]Zap(莫比乌斯反演)
- freeRTOS事件组学习
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
- JVM活学活用——优化springboot
- .Net中的AOP读书笔记系列之AOP介绍
- 洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)
- .Net中的AOP系列之构建一个汽车租赁应用(上)
- Modbus RTU驱动程序开发指引
- freeRTOS任务创建
- 洛谷P4213 Sum(杜教筛)
- JVM活学活用——调优工具
- .Net中的AOP系列之构建一个汽车租赁应用(下)
- Zookeeper学习笔记——2 Shell和Java API的使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法