为了提高自己的工作效率,我曾经对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. 在C#中使用Json.Net进行序列化和反序列化及定制化

    序列化(Serialize)是将对象转换成字节流,并将其用于存储或传输的过程,主要用途是保存对象的状态,以便在需要时重新创建该对象:反序列化(Deserialize)则是将上面的字节流转换为相应对象的 ...

  2. Java搜索引擎选择: Elasticsearch与Solr(转)

    Elasticsearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者 ...

  3. Maven生成项目文档

    Maven项目可以通过maven-site-plugin插件生成项目文档,无论什么项目都可以生成. 执行命令: mvn site 生成完成的输出目录在${basedir}/target/site文件夹 ...

  4. pycharm索引index时间很长的原因

    pycharm进行索引index的目的时代码自动补全,当引入新的插件时,就会增加索引时间,插件越多,索引时间越长 没有好的解决办法,除非增加硬件:或者不使用代码自动补全功能

  5. 从头认识java-15.5 使用LinkedHashSet须要注意的地方

    再接着上一个章节.我们来聊一下使用LinkedHashSet须要注意的地方. LinkedHashSet特点: (1)元素是有顺序的 (2)元素是不反复的 (3)底层数据结构是依照链表的结构存储的 ( ...

  6. EBS OAF开发中怎样实现功能页签(Global Tab)

    EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...

  7. 终端中的乐趣:6个有趣的Linux命令行工具

    文章链接: http://hpw123.net/a/Linux/ruanjiananzhuang/2014/1103/117.html​ 很多其它文章尽在 http://www.hpw123.net ...

  8. Sublime Text使用

    安装Sublime Text Sublime 的安装比較简单,我们能够直接去官网http://www.sublimetext.com/,点击Download菜单.进入之后选择自己操作系统的进行下载安装 ...

  9. 令人赞叹的 MySQL

    原文链接 译文链接 感谢 艾凌风 小伙伴校稿 令人赞叹的 MySQL 一个很棒的 MySQL 软件.库以及资源列表. 这个列表接受并鼓舞 pull requests,请看 CONTRIBUTING 文 ...

  10. CloudStack系统虚拟机启动但不在Host表中

    有网友问到这个问题,CloudStack中,系统虚拟机正常启动,Running状态. 可是在host表中没有对应项,上传下载模板等功能也不正常. 原因:系统虚拟机启动之后,会通过管理网段主动连接man ...