为了提高自己的工作效率,我曾经对Watir进行了系统性的学习,比起学习C++, Java等始终不得门,Watir还是学进去了,能够完整搭建出一个自己很容易理解的自动化架构。

之后我想继续在自动化测试方明提高自己,就把Ruby语言从头到尾走了一遍,还是有些收获的,虽然现在脑海里面也记不起来多少东西,但是就自动化测试这一方面来说,还是很有自信的。

Watir,Ruby能够很大程度上提高测试效率,这点是毋庸置疑的,印象深刻的是,以下场景下,Watir和Ruby帮了我的忙。

场景1:重现一些难以重现的Bug

公司产品有一个功能,用户可以在google地图上画一条路线,然后可以在这条路线上跑步健身,从而进行一些统计工作,用户还可以保存这条路线,分享给别人。

这个功能后来出现了一个大bug:当这种路线分享的多了,点击访问的就多了,达到一定程度之后,服务器将会崩溃。现在,如何重现它?

如果是手动点击,可能要先访问10000条不同的路线,然后Bug可能会出现,这对于测试人员来说,这项任务非常艰巨。

但是通过Watir脚本就很简单了:

1) 通过Watir操作IE/Firefox/Chrome,复制创建10000条Route;

2) 遍历当前页面所有的Route链接,直到Route内容完全加载之后,点击分页功能的下标, 再遍历下一个页面所有的Route链接,持续下去,每次成功访问,返回一个1,失败返回0;

3) 直到连续多次返回0,就停止脚步的执行,Bug页面将会重现。

这个场景完整脚本的书写不会超过1个小时,执行倒是要花费多个小时。

场景2:

为用户插入私有数据。

公司产品发现了一个Bug,数据库某个字段默认为0,有些用户通过页面操作设置为1了,现在需要把所有为0的字段都改为1,但是只能通过页面来修改,不能通过数据库来修改。而想到达该页面,需要登录,但是客户的私有信息,测试开发人员是无法获取的。

1) 开发人员沟通,最后寻找了一个解决方案,就是通过浏览器,访问加密的URL,从而把用户数据传输到数据库。

2) 把几千条URL依次输入浏览器,点击回车,等待正确响应,然后再下一条。

然后对于手工操作来说,也许真的很简单,但是也会耗费一个小时以上,而且很容易出现失误的情况。

通过Watir脚本,只需要一个读取文件函数(链接存在文件里面),一个goto函数,一个watir_until函数,一个返回值,事情就解决了,可以一劳永逸。

这些场景在测试工作中是非常多的,这里就不再罗列了。

我就罗列一个最近工作中常做的事:造数据!

现在我要给数据库中插入1W条网络图片路径,数据库的字段之间还有依赖关系,当系统启动的时候,这些网络路径的图片需要正常访问。

如果通过手工,给数据库中插入那么多数据,基本上是不可能完成的任务。

但是通过脚本就教简单了。

1) 遍历某个大型图片展示网站,通过ie.links.collect可以把链接存储下来;

2) 当进入某个链接页面之后,就需要把所有的图片资源的网络访问路径爬下来,这个可以通过ie.images.collect来简单实现,把这些图片资源网络路径存储起来;

3) 进入SQL,找到我们需要插入数据的表,通过SQL脚本自动生成功能,就可以获取一片SQL Insert脚本;

4) 对这些脚本进行定制,生成1W条相应的脚本,每条脚本指向的图片URL都不一样;

5) 新建SQL查询,把文档中保存的脚本放入其中,执行即可。

Watir 能够为你做什么?的更多相关文章

  1. Watir: 很久以前,对Watir开始学习时候做的笔记

    1). buttons Xpath 1)Button properties browser.button(:xpath,"//input[@id='b2']/").name bro ...

  2. python自动化测试框架学习

    今天发现python有多个框架可以用于自动化测试方面,下面整理了下splinter和urllib2框架,对于pywinauto框架和ruby框架先记录下以后需要用到再学习. python有个splin ...

  3. Watir: 右键点击实例(某些如果应用AutoIt来做会更加简单高效)

    require 'watir' module Watir class Element def top_edge assert_exists assert_enabled ole_object.getB ...

  4. 从手工测试转型web自动化测试继而转型成专门做自动化测试的学习路线。

    在开始之前先自学两个工具商业web自动化测试工具请自学QTP:QTP的学习可以跳过,我是跳过了的.开源web自动化测试工具请自学Selenium:我当年是先学watir(耗时1周),再学seleniu ...

  5. 爱在watir(1)----一切从搭讪开始

    Tom和Coco是有名的加班狂人.Tom加班改bug,Coco加班回归bug. 两人经常加班到很晚,Tom是男孩子,很自然的担负起护送Coco的任务.他打车先送Coco回去,然后自己回家.不过Tom和 ...

  6. Windows环境搭建Web自动化测试框架Watir

    Windows环境搭建Web自动化测试框架Watir 一.前言     Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...

  7. 在做自动化测试之前你需要知道的,转自:http://www.cnblogs.com/fnng/p/3653793.html

    什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念 ...

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

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

  9. web自动化测试:watir+minitest(一)

    基本介绍: 本课程的测试环境和工具为:win7+ruby+watir+minitest Watir 全称是"Web Application Testing in Ruby".它是一 ...

随机推荐

  1. 顿悟:Linux是拿来用的,不是拿来折腾的

    Linux是拿来用的,而不是折腾其本身.相信这个道理不少聪明人(实用主义者)都明白,然而总是有那么一群人拿Linux去安装各种发行版.研究Linux命令.配置桌面.美化桌面.研究各种wm/DE.永无止 ...

  2. 【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术

    目录 一. 概述 二. 原型链基础知识 三. Worker类的原型链加工 四. 实例的生成 五. 最后一个问题 六. 一些心得 示例代码托管在:http://www.github.com/dashno ...

  3. ROS安装环境配置及多版本的切换

    环境配置: 为方便起见,我们可以在每次打开终端时让系统自动配置好ROS环境变量,方法如下: echo "source /opt/ros/hydro/setup.bash" > ...

  4. Springboot 工具类静态注入

    用springboot搭了一个项目,里面要用到一个DictUtils,因为要用到DictMapper,在百度找了一些方法,最后用下面的方法能成功获取到DictMapper @Component pub ...

  5. iOS 读书笔记 第一章

    1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *arra ...

  6. Redhat 5 无法安装elfutils-libelf-devel-0.137问题

    http://whr25.blog.sohu.com/263584338.html 问题: RHEL5.5安装oracle11gR2的时候需要安装elfutils-libelf-devel-0.137 ...

  7. Ionic 学习笔记

    本文为原创,转载请注明出处: cnzt       文章:cnzt-p http://www.cnblogs.com/zt-blog/p/7831153.html 注: 本篇学习笔记基于Ionic 3 ...

  8. Cocos2d-x JSB 自己主动绑定bindings

    Javascript Binding (简称JSB) 自己主动绑定教程. Cocos2d-x JSB 自己主动绑定bindings-generator (以下简称B-G) 使用心得 假设想弄清深入原理 ...

  9. VS2013 update4+Cocos2d-x 3.7 Win8下安装方法及配置

    1.安装VS 2013 update4 7个G.自己就去网上找吧,一大堆,密钥问度娘. 2.安装及配置python 2.x 这里注意,一定要下载python 3.0下面的版本号. 配置:进行环境变量配 ...

  10. C#连接数据库 增删改查