Watir-WebDriver

                      —— 软件测试的自动化时代 QQ群:160409929

自动化测试方案书

系统架构

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

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'

页面涉及:

元素捕获

详情可见:http://www.cnblogs.com/Javame/p/4045229.html

 

页面加载性能监控

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工具类

涉及依赖:

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

Index总控

涉及依赖:

load Control_用例名称.rb'

 

统一调用

t = Control_用例名称.new

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

test_methods.each do |test|

  t.send(test) 

end

 

页面展示

涉及Ruby Web开发框架,后期需要再行开发

基于Ruby的Watir-WebDriver自动化测试方案的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本

    一.先来看一个小DEMO 通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来 ...

  9. Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署

    一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...

随机推荐

  1. linux下的常用命令

    1 fg切换前后台作业 将后台作业转换为前台作业,”fg %作业号“ 2 stty改变和打印终端行设置 tostop 阻止后台作业写终端,stty -a显示终端的所有选项 3 uname查看机子信息 ...

  2. 1Z0-053 争议题目解析86

    1Z0-053 争议题目解析86 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 86.Your production database is running in archivel ...

  3. CSS实现单行与多行文字省略(truncation)

    在上一篇文章小div布局之卡片堆叠(card-stacking)中有多行文字溢出省略的效果,这篇文章就对这种效果(包括单行文字溢出省略)的实现做个简单的记录,以防自己忘记.具体来说,就是要实现这种文字 ...

  4. HTML中使用javascript解除禁止input输入框代码:

    转:表单中Readonly和Disabled的区别 参考资料: disabled和readonly区别: 参考博文1地址:http://blog.csdn.net/symgdwyh/article/d ...

  5. 如何让你的网站支持https

    如何让你的网站支持https 当今世界的主流网站基本都是使用https对外界提供服务,甚至有某些公司建议完全使用https, 那么https是什么呢?请参考如下的图解,https是在我们通常说的tcp ...

  6. Spring-AOP实践 - 统计访问时间

    公司的项目有的页面超级慢,20s以上,不知道用户会不会疯掉,于是老大说这个页面要性能优化.于是,首先就要搞清楚究竟是哪一步耗时太多. 我采用spring aop来统计各个阶段的用时,其中计时器工具为S ...

  7. JS实现-页面数据无限加载

    在手机端浏览网页时,经常使用一个功能,当我们浏览京东或者淘宝时,页面滑动到底部,我们看到数据自动加载到列表.之前并不知道这些功能是怎么实现的,于是自己在PC浏览器上模拟实现这样的功能.先看看浏览效果: ...

  8. BF算法与KMP算法

    BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符:若不相等,则比较S的 ...

  9. Android封装OkHttpClient的类库

    由于android6.0的SDK没有HttpClient,只有HttpURLConnection和OkHttpClient,特记下OkHttpClient的使用方法 1.Ui测试界面布局 <?x ...

  10. GBDT的基本原理

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