博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Ruby的Watir-WebDriver自动化测试方案
阅读量:7258 次
发布时间:2019-06-29

本文共 1942 字,大约阅读时间需要 6 分钟。

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'

页面涉及:

元素捕获

详情可见:

 

页面加载性能监控

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开发框架,后期需要再行开发

 

转载地址:http://irodm.baihongyu.com/

你可能感兴趣的文章
IsRectEmpty与IsRectNull
查看>>
make.exe: *** [obj/local/armeabi-v7a/libtest.so] Error 1
查看>>
Splunk 预测2018年人工智能和机器学习的三大趋势
查看>>
webluker刷新缓存-php版
查看>>
用saltstack cp模块实现文件管理
查看>>
HTML 快速入门
查看>>
Linux系统密钥验证(附件有实验过程和截图)
查看>>
HDEL key field [field ...]
查看>>
dockerfile介绍与实例演示
查看>>
ceph-depoly 部署ceph 集群
查看>>
Jquery 中each循环嵌套的使用示例教程
查看>>
Windows7+VS2012下OpenGL 4的环境配置
查看>>
安全基础-A
查看>>
定义JavaScript类:工厂模式、构造函数模式、原型模式、构造函数原型模式、动态原型模式...
查看>>
zabbix修改Template OS Linux模版使已使用内存(Used memory)更准确
查看>>
OpenStack CEPH Liberty 统一存储 bug解决
查看>>
NAT总结
查看>>
Java-P:对象创建
查看>>
Oracle中的 timestamp 和 timestamp with time zone, timestamp with local time zone
查看>>
【转】MFC中listctrl控件的常用详细总结
查看>>