接着基于Ruby的watir-webdriver自动化测试方案与实施(一)
继续 ... ...
 
回顾
软件自动化测试的概述         
  Web自动化测试的方案设计
功能方案设计
业务方案设计
 
Web自动化测试的方案实施
  自动化测试脚本的录制和编写
  自动化测试的执行和具体实现
  测试操作和测试数据的回收

自动化测试脚本设计和录制

•工具: WatirRecorder++

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

•例子一: (实现hao123,搜索“ruby”功能)
require 'watir-webdriver'
include Watir
require 'test/unit'
class TC_recorded < Test::Unit::TestCase
def test_recorded
@@b = Watir::Browser.new
@@b.goto('http://www.hao123.com/')
@@b.text_field(:name, 'word').set('ruby')
@@b.text_field(:name, 'word').set('ruby')
@@b.button(:value, '百度一下').click
end
end

自动化测试的具体实现

•具体实现在Tools工具类中,多以Linux、Mysql体现
•列子二: (通过linux查询黑白名单是否生效)
class Linux < Mysql
def initialize ( host )
@@host = host
@@username = "root"
@@password = "rootmengmeng“ def L.gethost
return @@host
end
def L.getusername
return @@username
end
def L.getpassword
return @@password
end
def acl(ip)
@name = ip
a = "#{@name}"
server_cmd1 = "{ echo ' acl -L'; sleep 2; echo -e '\n'; } | telnet 0 1234 | grep #{a}"
ssh = Net::SSH.start(L.gethost, L.getusername, :password => L.getpassword) do |ssh|
result = ssh.exec!(server_cmd1)
@result=result
…..
.….
end
attr_writer :host

软件自动化测试成本投入和风险分析

软件自动化测试的成本投入

•脚本的维护成本:自动化的测试流程,使得脚本的维护成为自动化实施的一个关键性的依据。对于一个规范化的系统开发流程来说,实现测试的自动化是很有必要的。但是自动化的脚本维护使得我们的自动化测试在成本上变得较为昂贵。每一个系统的开发都是时刻随着需求的变更而改变,然而在大多数的情况下,就是很微小的一点系统修改都会导致我们去大量的修改自动化的测试脚本。

(这就是我们为什么要引入架构的关系!)

我们的架构的好处就是业务与逻辑分开,就是页面出现了更新或修改只需重新录制或编写新的用例即可,不会影响业务结果。

自动化测试的脚本的维护

•整个自动化测试开放平台分两个部件:

JAVA前端(负责数据的预置、与执行的发起)

Ruby底层(负责业务的实现、与操作的执行)

•关于维护

JAVA前端所有配置参数都是动态获取,后期业务变更无需修改

Ruby底层

Test用例层与Control控制层随着需求的迭代,需要长期的进行维护

Tools工具层只会根据业务上有很大的变动而更改

othe无需更改

软件自动化测试的风险分析

•风险的存在原因:
  自动化测试只是针对系统的大部分主要功能进行了有效的测试和验证,从而使得覆盖的测试面较为狭窄,导致系统的有些隐藏问题无法发现。
•风险的减小建议:
  在自动化测试的实现初期 ,设计好自动化的测试用例,把握好系统的重点功能及可能会出现的问题,进而再实现测试自动化。在现有条件下减小可预计的系统风险。
•目标:
  在现有条件下减小可预计的系统测试风险。
说在最后的
      1、自动化并不是全自动,需要花精力才能让他自动化。
      2、自动化工具不是万能的,他也有自己的缺陷。
      3、自动化永远不可能取代人工的位置。
      4、自动化脚本的维护有时是很致命的,需要有一定的经验才能做好。 
 

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

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

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

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

    接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...

  3. 基于ruby的watir自动化测试 笔记一

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

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

    接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   首先回忆 ...

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

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

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

    基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...

  7. 基于Java+Selenium的WebUI自动化测试框架(十二)-----读取Excel文件(POI)(2)

    上一篇我们讲了怎么利用Java的反射机制,将Excel的读取到的数据,赋值给我们构造函数中定义的变量. 接下来就简单了,我们将实际实现这个读取的简单过程.来看下面一段代码. private stati ...

  8. 基于Ruby的Watir-WebDriver自动化测试框架

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

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

    一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...

随机推荐

  1. [Python] python vs cplusplus

    一些学习过程中的总结的两种语言的小对比,帮助理解OO programming. Continue... 字典 序列 --> 字典 Python: def get_counts(sequence) ...

  2. swift 中单例的写法

    在swift中单例的写法和oc的有所不同,在书写的时候又分很多种写法,,如果一个.swift 文件只创建了一个类,可以用那种dispatch_once的写法,如果一个.swift文件中有很多类的存在, ...

  3. C语言 第四章 分支结构练习

    一.输入语文,数学成绩,根据平均分分3档 #include "stdio.h" void main() { //接受用户输入 float chinese,math,avg; pri ...

  4. Sybase数据库,普通表修改分区表步骤

    本文目标:指导项目侧人员再遇到此类改动需求时可以自己参照更改.需求:Sybase数据库,普通表t_jingyu修改为按天分区的分区表. 1.sp_help查看t_jingyu的表结构,索引等信息 sp ...

  5. php中调用WebService接口

    一.背景 调用第三方短信提供商的WebService接口. 二.介绍 1.WebService三要素: SOAP(Simple Object Access Protocol) 用来描述传递信息的格式 ...

  6. 用HTML5 CANVAS做自定义路径的动态效果图片!

    最近对HTML5开始感兴趣了,实现的效果如下图,大家可以从代码里换掉图片 我用的是canvas里面的2d绘图,其中上图的路径是网上在线绘制的,我太懒了,哈哈 下面是网址: http://www.vic ...

  7. jquery实现分页功能

    RT,不是很难,但是感觉代码一点都不简洁,就是多加点判断,直接上代码了. HTML部分: <div class = "container-fluid"> <div ...

  8. 微信公众账号 token 验证失败 解决办法

    问题:微信公众账号 开发过程中配置  token 提示 验证失败 如下图: 点击修改配置: 填写相关url与token(自定义):点击提交,会出现 出现这种情况,主要是对相关参数不熟悉,要了解url与 ...

  9. jQuery-1.9.1源码分析系列(二)jQuery选择器续1

    在分析之前说一点题外话. ownerDocument和 documentElement的区别 ownerDocument是Node对象的一个属性,返回的是某个元素的根节点文档对象:即document对 ...

  10. STL中vector、list、map、set区别(转载)

    list封装了链表,vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[].vector对于随机访 ...