基于Ruby的watir-webdriver自动化测试方案与实施(一)

为什么要实施自动化测试?

•应用系统日趋复杂的客观要求

一个不可避免的问题是,应用系统变得日趋复杂,并且造成了更大的风险。测试消耗的成本越来越高,花费的时间也越来越长。而成本与时间是有限的。为了在限制的成本与时间范围内,控制发布的软件产品的质量,测试人员被要求在尽量短的时间内对软件进行足够的测试。

•避免重复测试的主观要求

迭代式开发过程:目前的软件开发或多或少使用了迭代式开发过程,这就导致了我们需要进行一轮又一轮的测试。

回归测试:为了检验软件版本是否正确,或者当发现软件中出现了一个或多个以前曾经被修复的缺陷时,不可避免的需要进行回归性的测试。

自动化测试实施失败的因素?

1.期望值过高。就像管理人员要求完全测试一样,期望100%的测试自动化,也同样是一个不现实的需求。

1.自动化的收益和成本:

成本=用例的开发+用例的维护

收益 = 重复运行次数 (时间) + 节约的时间

自动化测试的成长过程?

Testing often begins as freestyle, expands toward scripted.

测试总是从自由式的探索开始,朝脚本化方向扩张

自动化测试的应用时机?

重头戏

测试方案设计

1 自动化测试的功能方案设计的流程:

操作对象—>对象属性—>功能实现—>结果验证

2 自动化测试的功能方案设计操作用例图:

Web对象的识别—Watir-WebDriver

•输入框 input
•按钮 button
•下拉框 select
• 链接 link
•点击 click
•单选 radio
•多选 checkbox
•模拟键盘 send_keys :enter 

自动化测试开放平台框架设计

自动化测试框架的用例设计示例

•一、基于ruby的watir-webdriver开发

•二、统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出。(一个类可以多个方法)

•三、统一输出规则,比如:①[info]②TiStone ③Login successful!④001011

①   [Info]:代表该用例执行成功![error]代表失败![warn]代表警告!

②   TiStone:代表执行用例名称

③   Login successful!:描述或捕获的value值,以“!”结尾

④   001011:返回码

•四、统一用例名称,应与输出②保持一致

•五、入参统一通过RubyBean介入

•六、浏览器实例化、被测系统跳转、用户登录、浏览器实例化等统一继承Tools工具类

自动化测试框架的Control设计示例

•一、一个用例对应一个Control

•二、效验输出,判断用例执行成败,根据规则关联Linux服务器捕获相关日志、配置文件等分析失败原因,缩减定位区域范围。

•三、对比数据,关联MySql查询数据,对比web捕获value值。

自动化测试框架的Tools设计示例

•一、封装常用工具类

•二、Linux与MySql业务接口

•三、面向对象,实现继承Tools,降低用例开发难度

自动化测试框架的Model设计示例

•一、提供统一执行、单一执行与批量执行模式

•二、关联JAVA前端,通过RubyBean实现两端交互

自动化测试框架的JAVA前端设计示例

•一、通过被测系统与ruby节点

被测系统:需要测试的系统

Ruby节点:实现前端与底层ruby关联(可选)

•二、用例管理

提供创建用例节点

提供上传指定节点自动化用例

•三、用户管理

自动化测试框架的结果展示设计示例

时间: 2024-10-07 17:46:06

基于Ruby的watir-webdriver自动化测试方案与实施(一)的相关文章

基于Ruby的watir-webdriver自动化测试方案与实施(三)

接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 编写脚本首先要学会捕获元素,接下来就要学习页面元素的捕获. 页面元素 attribute_value 获取当前控件的属性 Value = ie.link(:id=>'xxx’).attribute_value("href") rand_select 随机选择select list中的某一项 ie

基于Ruby的watir-webdriver自动化测试方案与实施(二)

接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ... 回顾 软件自动化测试的概述 Web自动化测试的方案设计 功能方案设计 业务方案设计 Web自动化测试的方案实施 自动化测试脚本的录制和编写 自动化测试的执行和具体实现 测试操作和测试数据的回收 自动化测试脚本设计和录制 •工具: WatirRecorder++ 统一预置参数输入规则,提供规则模板,做到一个用例一

基于Ruby的watir-webdriver自动化测试方案与实施(四)

接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 首先回忆下我们的系统架构,然后谈谈具体的实现. 该自动化测试框架分三个模块:Test用例.Control控制层.Tools工具类.model总控. Test用例 基于ruby的watir-webdriver开发 统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出.(一个类可以多个方法) 统

基于ruby的watir自动化测试 笔记二

基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=>'xxx’).attribute_value("href") rand_select 随机选择select list中的某一项 ie.select_list(:name=>’’).rand_select popupwin 点击弹窗上的‘确定’按钮 ie.popupwin.butto

从0到1,教你实现基于Ruby的watir-webdriver自动化测试

一.为什么选择Ruby [1]完全开源. [2]多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/2.. [3]多线程:线程就是指在一个程序中处理若干控制流的功能.与OS提供的进程不同的是,线程可以共享内存空间. [4]完全面向对象. [5]不需要内存管理:具有垃圾回收(Garbage Collect, GC)功能,能自动回收不再使用的对象. [6]解释执行:其程序无需编译即可轻松执行. [7]功能强大的字符串操作/正则表达式. [8]具有异

Windows环境搭建Web自动化测试框架Watir(基于Ruby) 第1章

一.前言     Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够为国内web自动化测试的发展做一点绵薄的贡献吧,笑~ 二.Watir搭建流程 图1-1 需要安装的工具     下载地址:http://railsinstaller.org/     因为安装Ruby还需要用到其他的一些开发工具集,所以建议从网站http://railsinstaller.o

Windows环境搭建Web自动化测试框架Watir(基于Ruby)

web自动化测试一直是一个比较迫切的问题 图1-1 需要安装的工具 http://railsinstaller.org/ 因为安装Ruby还需要用到其他的一些开发工具集,所以建议从网站http://railsinstaller.org/ 下载,而且使用该安装包的话,它会帮你把环境变量也设置完毕,我使用的版本是:railsinstaller-2.2.4.exe,建议下载最新版本. 开始安装RailsInstaller工具包,安装到默认位置即可. 这个对勾建议打上,它会帮你配置git和ssh,安装过

基于Ruby的Watir-WebDriver自动化测试方案

Watir-WebDriver 自动化测试方案书 系统架构 该自动化测试框架分三个模块:Test用例.Control控制层.Tools工具类.Index总控. Test用例 基于ruby的watir-webdriver开发 统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出.(一个类可以多个方法) 统一输出规则,比如:①[info]②TiStone ③Login successful!④001011 ①   [Info]:代表该用例执行成功![error]代表失败![war

Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本

一.先来看一个小DEMO     通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解: 图1-1 测试脚本:测试百度搜索     代码如下: #encoding: utf-8 #测试百度搜索 require 'watir' puts "打开浏览器" browser = Watir::Browser.new sleep 2 #延时