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

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

•工具: WatirRecorder++

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

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

自动化测试的具体实现

•具体实现在Tools工具类中,多以Linux、Mysql体现
•列子二: (通过linux查询黑白名单是否生效)
  1. class Linux < Mysql
  2. def initialize ( host )
  3. @@host = host
  4. @@username = "root"
  5. @@password = "rootmengmeng“
  6.  
  7. def L.gethost
  8. return @@host
  9. end
  10. def L.getusername
  11. return @@username
  12. end
  13. def L.getpassword
  14. return @@password
  15. end
  16. def acl(ip)
  17. @name = ip
  18. a = "#{@name}"
  19. server_cmd1 = "{ echo ' acl -L'; sleep 2; echo -e '\n'; } | telnet 0 1234 | grep #{a}"
  20. ssh = Net::SSH.start(L.gethost, L.getusername, :password => L.getpassword) do |ssh|
  21. result = ssh.exec!(server_cmd1)
  22. @result=result
  23. …..
  24. .….
  25. end
  26. 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. 跟着9张思维导图学习Javascript

    学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将 po 出我收集的 9 张 javascript 相关的思维导图(非原创). 思维导图小tips: 思维导图又叫心智图,是表达发射性思维的 ...

  2. YII 的源码分析(二)

    上一篇简单分析了一下yii的流程,从创建一个应用,到屏幕上输出结果.这一次我来一个稍复杂一点的,重点在输出上,不再是简单的一行"hello world",而是要经过view(视图) ...

  3. 1Z0-053 争议题目解析314

    1Z0-053 争议题目解析314 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 314.Given the following RMAN commands, choose the ...

  4. hibernate笔记--单向一对多映射方法

    上一篇讲的是单向多对一的表关系,与单向一对多的关系正好相反,如下图所示关系: ,可以看出年级表和学生表是一对多的关系,一条年级信息对应多条学生信息,在hibernate中成为单向的一对多的映射关系,应 ...

  5. 资源等待类型sys.dm_os_wait_stats

    动态管理视图  sys.dm_os_wait_stats 返回执行的线程所遇到的所有等待的相关信息.可以使用该聚合视图来诊断 SQL Server 以及特定查询和批处理的性能问题. 列名 数据类型 说 ...

  6. [AngularJS] AngularJS系列(6) 中级篇之ngResource

    目录 $http ngResource $http几乎是所有ng开发中,都会用到的服务.本节将重点说下$http 与 ngResource $http 使用:$http(config); 参数: me ...

  7. CSS-清除浮动

    什么是CSS清除浮动? 在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高 ...

  8. Devexpress TextAnnotation

    private void BindData() { chartControl1.AnnotationRepository.Clear(); chartControl1.Series.Clear(); ...

  9. GBDT的基本原理

    这里以二元分类为例子,给出最基本原理的解释 GBDT 是多棵树的输出预测值的累加 GBDT的树都是 回归树 而不是分类树 分类树 分裂的时候选取使得误差下降最多的分裂 计算的技巧 最终分裂收益按照下面 ...

  10. html 空链接 href="#"与href="javascript:void(0)"的区别

    #包含了一个位置信息 默认的锚是#top 也就是网页的上端 而javascript:void(0) 仅仅表示一个死链接 这就是为什么有的时候页面很长浏览链接明明是#但跳动到了页首 而javascrip ...