接着基于Ruby的watir-webdriver自动化测试方案与实施(三)
继续 ... ...
 
首先回忆下我们的系统架构,然后谈谈具体的实现。
 

该自动化测试框架分三个模块:Test用例、Control控制层、Tools工具类、model总控

Test用例

  1. 基于ruby的watir-webdriver开发
  2. 统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出。(一个类可以多个方法)
  3. 统一输出规则,比如:①[info]②TiStone ③Login successful!④001011

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

    ②   TiStone:代表执行用例名称

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

    ④   001011:返回码

  4.统一用例名称,应与输出②保持一致

Control控制层

  1. 一个用例对应一个Control
  2. 效验输出,判断用例执行成败,根据规则关联Linux服务器捕获相关日志、配置文件等分析失败原因,缩减定位区域范围。
  3. 对比数据,关联MySql查询数据,对比web捕获value值。

Tools工具类

  1. 封装工具类
  2. 关联Linux与MySql
  3. 提供测试用例支持,降低用例开发难度

Index总控

  1. 控制用例执行与展示

方案设计

Test用例

涉及依赖:

require 'watir-webdriver'
require 'watir-webdriver-performance'

页面加载性能监控

1.times do 

b.goto("https://192.168.10.1/web")

load_secs = b.performance.summary[:response_time]/1000

puts "Load Time: #{load_secs} seconds."

End

 

功能成败判别

if b.text.include? 'T_100M'
#捕获web属性value值
#后续操作
puts "①[info]②TiStone ③Login successful!000000"
else
#后续操作
#输出错误码
puts "①[error]②TiStone ③Login failed!001011"
end

参数化提取

class BasicNumber
def initialize(number,name)
@number = number
@name = name
end
def add(x)
@number + x
end
end

Control控制层

涉及依赖:

load 'Linux.rb'
load 'MySql.rb'

 

具体实现与Tools通信,做一个信息传输的枢纽。

Tools工具类

涉及依赖:

require 'net/ssh'
require 'scp/ssh'
require "test/unit"

关联Linux

#ip/用户名/密码

host = "192.168.48.233"

username = "root"

password = "root"

#调用linux命令

server_cmd1 = 'tail -1000 /home/log/web.log  | grep ERROR'

server_shell= 'sh /home/wyong/w.sh'

关联MySql

具体实现略…

单元测试

class TC_MyTest  < Test::Unit::TestCase

         def test_add

                   n=BasicNumber.new(10)

                   assert_equal(134,n.add(4),"This test about add is failure!")  

    end

end

model总控

涉及依赖:

load Control_用例名称.rb'

 

统一调用

t = Control_用例名称.new

test_methods = t.public_methods.grep(/^test_/)

test_methods.each do |test|

  t.send(test) 

end

 

基于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-webdriver自动化测试方案与实施(二)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ...   回顾 软 ...

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

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

  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自动化测试框架(十四)-----使用TestNG的Sample

    到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...

  8. <自动化测试方案_4>第四章、选型标准

    第四章.选型标准 1,免费 2,工具可维护.可扩展 3,支持团队工作

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

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

随机推荐

  1. vue+node开发手机端h5页面开发遇到的坑

    项目进行中...随时更新 这里记录了一些手机端调试的方式 一 css 1.文字超过span宽度显示...(单行文字) .topWrap .introduce span { padding: 0 17p ...

  2. 写给后端程序员的HTTP缓存原理介绍

    There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Ka ...

  3. SFC中的问题描述

    本文主要描述了在大规模的网络环境中部署服务功能存在的一些问题,还提出了几个关键领域,即SFC工作组将要探讨的关于SFC结构.工作协议.相关文档. 1.问题描述 SFC工作组致力于解决的几个服务部署中存 ...

  4. 【集合框架】JDK1.8源码分析之HashMap(一)

    一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...

  5. [Java 安全]消息摘要与数字签名

    消息摘要 算法简述 定义 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知 ...

  6. Replace conditional with Polymorphism

    namespace RefactoringLib.Ploymorphism.Before { public class Customer { } public class Employee : Cus ...

  7. jQuery-1.9.1源码分析系列(一)整体架构续

    这一节主要是jQuery中最基础的几个东东 2.    jQuery的几个基础属性和函数 a. jQuery.noConflict函数详解 在jQuery初始化的时候保存了外部的$和jQuery _j ...

  8. Django 1.10 中文文档------3.2.2 查询操作making queries

    3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...

  9. Mac OS X平台下QuickLook开发教程

    一.引言 Quick Look技术是Apple在Mac OS X 10.5中引入的一种用于快速查看文件内容的技术.用户只需要选中文件单击空格键即可快速查看文件内容,可以在不打开文件的情况下快速浏览内容 ...

  10. Java的HTTP通信

    在Android中,HTTP通信可以用Volley,在Java中不能使用Volley,只能使用DefaultHttpClient,HttpPost和HttpResponse. /* * 向服务器发送数 ...