ruby+watir UI测试(二)
时间:2022-07-28
本文章向大家介绍ruby+watir UI测试(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
上次简单的说了一下ruby+watir的简单应用,这次再来补充一下
UI自动化测试的稳定性没有接口那么稳定,脚本在运行的过程中会出现这样那样的问题,虽然cucumber可以生成测试报告,但是有时候,不能很方便的从测试报告中定位到问题的所在。如果出错时有截图是不是会让定位错误方便点呢?
这次分享一个截图的插件大漠插件:dm.ll
dm.ll的安装
- 根据自己的ruby环境选择对应的dm.ll下载,下载后放到ruby目录下如图:
2.注册dm.ll
命令行输入:regsvr32 (dm.dll路径) 如图:
准备工作就绪,开始进行代码部分
env.rb文件编辑
导入dm.ll插件,添加触发截图方法;
# encoding: UTF-8
require 'watir'
require 'win32ole'
$dm = WIN32OLE.new('dm.dmsoft') #大漠插件,用于截图
$imgPath = "screenshots/" #截图存放路径
Dir.mkdir($imgPath) unless File.exists?($imgPath)
After do |scenario|
if scenario.failed?
puts addScreenshot("#{Time.now.strftime("%Y%m%d-%H%M%S")}_error")
end
begin
$driver.close()
rescue => exception
end
end
*****************前方高能***广告开始*****************
*****************前方恢复***广告结束*****************
新建common.rb文件,用于存放公共方法
# 截图方法
def addScreenshot(_filename)
if (1 != $dm.CapturePng(0, 0, 5000, 5000, $imgPath + _filename + ".png"))
return "截图出错!"
end
return "<img src="#{$imgPath}#{_filename}.png">"
end
最后根据上篇的步骤,编写并执行脚本,如果脚本出错就会生成截图了!(注意如果选择生成测试报告,就不会有截图生成)
- Pytorch 0.3.0 发布:新增张量函数,支持模型移植
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 执行
- PhalGo-初识PhalGO
- 【学术】如何在神经网络中选择正确的激活函数
- PhalGo-Echo路由
- PhalGo-介绍
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— 分布式主键
- [喵咪Golang(2)]安装和Helloworld
- LSTM的简单介绍,附情感分析应用
- 使用实体嵌入的结构化数据进行深度学习
- Otter-入门篇3(Node搭建)
- PhalGo-Respones
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写
- Otter-入门篇2(Manager安装配置)
- 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 数组属性和方法
- [OHIF-Viewers]医疗数字阅片-医学影像-屏蔽StudyList病例列表
- Ant Design for Vue的Table组件一列显示多个参数
- 【React】React-router的使用记录
- Blazor带我重玩前端(四)
- Android绘制系统简介
- E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
- Linux 如何使用包管理器安装 Node.js
- CSS画图
- R语言聚类算法的应用实例
- Python时间序列选择波动率预测指数收益算法分析案例
- Linux 常用系统工作命令-date
- R使用LASSO回归预测股票收益
- Linux 常用系统工作命令-reboot、poweroff、wget
- Node.js + Socket.io 实现一对一即时聊天
- Linux 常用系统工作命令-ps、top