基于Ruby的watir-webdriver自动化测试方案与实施(四)
该自动化测试框架分三个模块:Test用例、Control控制层、Tools工具类、model总控。
Test用例
- 基于ruby的watir-webdriver开发
- 统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出。(一个类可以多个方法)
- 统一输出规则,比如:①[info]②TiStone ③Login successful!④001011
① [Info]:代表该用例执行成功![error]代表失败![warn]代表警告!
② TiStone:代表执行用例名称
③ Login successful!:描述或捕获的value值,以“!”结尾
④ 001011:返回码
4.统一用例名称,应与输出②保持一致
Control控制层
- 一个用例对应一个Control
- 效验输出,判断用例执行成败,根据规则关联Linux服务器捕获相关日志、配置文件等分析失败原因,缩减定位区域范围。
- 对比数据,关联MySql查询数据,对比web捕获value值。
Tools工具类
- 封装工具类
- 关联Linux与MySql
- 提供测试用例支持,降低用例开发难度
Index总控
- 控制用例执行与展示
方案设计
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自动化测试方案与实施(四)的更多相关文章
- 基于Ruby的watir-webdriver自动化测试方案与实施(三)
接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 编写脚本 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(五)
接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(二)
接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ... 回顾 软 ...
- 基于ruby的watir自动化测试 笔记一
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(一)
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 基于ruby的watir自动化测试 笔记二
基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...
- 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample
到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...
- <自动化测试方案_4>第四章、选型标准
第四章.选型标准 1,免费 2,工具可维护.可扩展 3,支持团队工作
- 基于Ruby的Watir-WebDriver自动化测试框架
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
随机推荐
- Javascript一些实用技巧
1.利用NumberObj的toString(radix)方法获取随机数字字母字符串,radix是表示数字的基数,就是进制,如下所示 var getRndAlphaNumStr = (len) =&g ...
- 梯度下降(Gradient Descent)小结
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法.这里就对梯度下降法做一个完整的总结. 1. 梯度 在微 ...
- 分析Mysql 5.6的Dockerfile
Docker官方的Mysql镜像的Dockerfile托管在Github上,地址如下: https://github.com/docker-library/mysql/tree/5836bc9af9d ...
- @Async in Spring--转
原文地址:http://www.baeldung.com/spring-async 1. Overview In this article we’ll explore the asynchronous ...
- 趣谈unicode,ansi,utf-8,unicode big endian这些编码有什么区别(转载)
从头讲讲编码的故事.那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起.嗯,也许这样开始比较好…… 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同 ...
- WebSocket 学习(三)--用nodejs搭建服务器
前面已经学习了WebSocket API,包括事件.方法和属性.详情:WebSocket(二)--API WebSocket是基于事件驱动,支持全双工通信.下面通过三个简单例子体验一下. 简单开始 ...
- js实现动画效果框架
RT,是参照慕课的教程做的.两个多小时的教程,看完了然后晚上的时候做了下,看的时候感觉明白了,但其实做的时候还是有很多小细节需要处理的. 上代码,思想什么的直接去慕课看教程就好了.点击这里 注释也比较 ...
- 自己封装的一个LoadRes组件
这两周一直太忙,没有好好处理上上上周遇到的一个让我加班到凌晨的问题,这个问题是判断flash的加载. 之前的思路是让flash的人在制作flash的时候,加入了一个回调方法,该方法再会回调我页面的方法 ...
- Oracle 英文 非标准格式 日期 格式化
最近在处理一张表的时候,需要按照日期排序,日期字段中日期的格式有两种. 格式一:07-Aug-2015 格式二:10/28/16 日期转化及格式化sql语句: select to_date('07-A ...
- c#获取光标在屏幕中位置
需要调用win32api,winform.wpf通用 代码如下: [DllImport("user32.dll")] public static extern bool GetCu ...