zoukankan      html  css  js  c++  java
  • 基于Ruby的watir-webdriver自动化测试方案与实施(一)

     

    为什么要实施自动化测试?

    •应用系统日趋复杂的客观要求

          一个不可避免的问题是,应用系统变得日趋复杂,并且造成了更大的风险。测试消耗的成本越来越高,花费的时间也越来越长。而成本与时间是有限的。为了在限制的成本与时间范围内,控制发布的软件产品的质量,测试人员被要求在尽量短的时间内对软件进行足够的测试。

    •避免重复测试的主观要求

         迭代式开发过程:目前的软件开发或多或少使用了迭代式开发过程,这就导致了我们需要进行一轮又一轮的测试。

         回归测试:为了检验软件版本是否正确,或者当发现软件中出现了一个或多个以前曾经被修复的缺陷时,不可避免的需要进行回归性的测试。

    自动化测试实施失败的因素?

    1.期望值过高。就像管理人员要求完全测试一样,期望100%的测试自动化,也同样是一个不现实的需求。
    1.自动化的收益和成本:

            成本=用例的开发+用例的维护

            收益 = 重复运行次数 (时间) + 节约的时间

    自动化测试的成长过程?

    Testing often begins as freestyle, expands toward scripted.

    测试总是从自由式的探索开始,朝脚本化方向扩张

    自动化测试的应用时机?

    重头戏

    测试方案设计

    1 自动化测试的功能方案设计的流程:

                 操作对象—>对象属性—>功能实现—>结果验证

    2 自动化测试的功能方案设计操作用例图:

    Web对象的识别—Watir-WebDriver

    •输入框 input
    •按钮 button
    •下拉框 select
    • 链接 link
    •点击 click
    •单选 radio
    •多选 checkbox
    •模拟键盘 send_keys :enter 

    自动化测试开放平台框架设计

    自动化测试框架的用例设计示例

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

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

      ②   TiStone:代表执行用例名称

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

      ④   001011:返回码

    •四、统一用例名称,应与输出②保持一致
    •五、入参统一通过RubyBean介入
    •六、浏览器实例化、被测系统跳转、用户登录、浏览器实例化等统一继承Tools工具类
     
    自动化测试框架的Control设计示例
    •一、一个用例对应一个Control
    •二、效验输出,判断用例执行成败,根据规则关联Linux服务器捕获相关日志、配置文件等分析失败原因,缩减定位区域范围。
    •三、对比数据,关联MySql查询数据,对比web捕获value值。
     
    自动化测试框架的Tools设计示例
    •一、封装常用工具类
    •二、Linux与MySql业务接口
    •三、面向对象,实现继承Tools,降低用例开发难度
     
    自动化测试框架的Model设计示例
    •一、提供统一执行、单一执行与批量执行模式
    •二、关联JAVA前端,通过RubyBean实现两端交互
    自动化测试框架的JAVA前端设计示例
    •一、通过被测系统与ruby节点

      被测系统:需要测试的系统

      Ruby节点:实现前端与底层ruby关联(可选)

    •二、用例管理

      提供创建用例节点

      提供上传指定节点自动化用例

    •三、用户管理
    自动化测试框架的结果展示设计示例
     
     
  • 相关阅读:
    YCSB测试Mysql,MongoDB,TokuMX,Couchbase性能
    使用FIO对SATA、SSD和PCIe Flash进行测试
    使用jenkins实现持续集成
    linux服务器性能(网卡流量、CPU、内存、磁盘使用率)监控
    Linux下Hadoop2.7.1集群环境的搭建(超详细版)
    10分钟学会js处理json常用方法
    springboot:Java模板引擎Thymeleaf介绍
    springboot使用遇到问题:Class “model.Address” is listed in the persistence.xml file but not mapped
    eclipse4.6.1安装SpringSource Tool Suite(sts-eclipse)插件
    由一条sql语句想到的子查询优化
  • 原文地址:https://www.cnblogs.com/Javame/p/4159360.html
Copyright © 2011-2022 走看看