为了提高自己的工作效率,我曾经对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. 2018 ICPC 徐州网络预赛 Features Track (STL map pair)

    [传送门]https://nanti.jisuanke.com/t/31458 [题目大意]有N个帧,每帧有K个动作特征,每个特征用一个向量表示(x,y).两个特征相同当且仅当他们在不同的帧中出现且向 ...

  2. 使用Reveal 调试iOS应用程序

    Itty Bitty Apps发布了一款实用工具——Reveal,它能够在运行时调试和修改iOS应用程序.Reveal能连接到应用程序,并允许开发者编辑各种用户界面参数,这反过来会立即反应在程序的UI ...

  3. 使用Myeclipse + SVN + TaoCode 免费实现项目版本控制的详细教程

    通过Myeclipse + SVN插件 + TaoCOde可以省去代码仓库的租建:同时还可以很好的满足小团队之间敏捷开发的需求.接下来详细介绍整个搭建流程. 首先,介绍所用到的工具: 1,Myecli ...

  4. 王立平--Gallery:实现图片的左右滑动

    <span style="font-size:18px;color:#330033;">package com.main; import android.app.Act ...

  5. tensorflow基础练习:线性模型

    TensorFlow是一个面向数值计算的通用平台,可以方便地训练线性模型.下面采用TensorFlow完成Andrew Ng主讲的Deep Learning课程练习题,提供了整套源码. 线性回归 多元 ...

  6. [Unit Testing] Test async function with Jasmine

    Most of time, when we want to test function call inside a promise, we can do: it('Should be async', ...

  7. ZT:与其怨天尤人,不如全力以赴;若想改变世界,你必须先从改变自己开始!

    在闻名世界的威斯特敏斯特大教堂地下室的墓碑林中,有一块名扬世界的墓碑.其实这只是一块很普通的墓碑,粗糙的花岗石质地,造型也很一般,同周围那些质地上乘.做工优良的亨利三世到乔治二世等二十多位英国前国王墓 ...

  8. LeetCode 3_Longest Substring Without Repeating Characters

    LeetCode 3_Longest Substring Without Repeating Characters 题目描写叙述: Given a string, find the length of ...

  9. jQuery的ajax,当async为false时,同步操作失败。解决方式

    引发失败时代码: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POS ...

  10. Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor

    Webservice WCF WebApi   注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...