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

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

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

•工具: WatirRecorder++

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

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

•例子一: (实现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=&gt ...

  7. 基于Java&plus;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. 关于 CSS 反射倒影的研究思考

    原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...

  2. 异步与并行~ReaderWriterLockSlim实现的共享锁和互斥锁

    返回目录 在System.Threading.Tasks命名空间下,使用ReaderWriterLockSlim对象来实现多线程并发时的锁管理,它比lock来说,性能更好,也并合理,我们都知道lock ...

  3. svn patch

    生成patch文件: svn diff > patchFile // 整个工程的变动生成patch 或svn diff file > patchFile // 某个文件单独变动的patch ...

  4. Socket 死连接详解

    Socket 死连接详解 当使用 Socket 进行通信时,由于各种不同的因素,都有可能导致死连接停留在服务器端,假如服务端需要处理的连接较多,就有可能造成服务器资源严重浪费,对此,本文将阐述其原理以 ...

  5. 数据结构 - 双链表(C&plus;&plus;)

    // ------DoublyLinkedList.h------ template <class T> class DNode { private: // 指向左.右结点的指针 DNod ...

  6. 使用非 GUI 模式运行 JMeter 压力测试

    使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...

  7. Java 判断回文字符串有多少和其中的最大字符串

    一.简介代码功能 该代码的功能可以实现对任意的一段字符串进行判断是否有回文,回文有哪些,和其中的最大回文. 二.代码部分 1.全局变量 static String hws = "" ...

  8. 关于xlrd处理合并单元格

    先埋个雷, 最近在做通过excel读取接口测试用例~ 流程等都是自己制定的,打算做完了之后放到GitHub上去哈哈哈. 正式进入正题~ 在写这个框架的时候,遇到了一个问题,就是同一个接口,需要为他准备 ...

  9. thinkphp实现文件上传

    文件上传详细讲解 http://www.thinkphp.cn/info/194.html 上传根目录不存在问题解决方法 http://www.thinkphp.cn/topic/10779.html

  10. mysql关闭groupby模式

    Mysql5.7 出现 SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ w ...