首页 > 代码库 > 基于Ruby的Watir-WebDriver自动化测试方案
基于Ruby的Watir-WebDriver自动化测试方案
Watir-WebDriver
自动化测试方案书
系统架构
该自动化测试框架分三个模块:Test用例、Control控制层、Tools工具类、Index总控。
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‘
页面涉及:
元素捕获
详情可见: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]/1000puts "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 endend
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!") endend
Index总控
涉及依赖:
load Control_用例名称.rb‘
统一调用
t = Control_用例名称.newtest_methods = t.public_methods.grep(/^test_/)test_methods.each do |test| t.send(test) end
页面展示
涉及Ruby Web开发框架,后期需要再行开发
基于Ruby的Watir-WebDriver自动化测试方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。