为了提高自己的工作效率,我曾经对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. CODEVS_1074 食物链

    #include<iostream> #include<algorithm> #include<cstring> #include<string> #d ...

  2. jquery的固定定位效果

    今天做了个固定定位的效果.比如对导航需要进行固定定位效果: 当没有滚动到导航下面,导航正常显示. 当滚动到导航下面,导航就固定到顶部. 这个效果使用了jquery的方法实现,具体思路为: 1)首先获取 ...

  3. 使用git 高效多人合作

    复习一下... 附加学习链接: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/) ...

  4. python 工具ScreenShoot

    环境:windows python3 # -*- coding: UTF-8 -*- import time import os, win32gui, win32ui, win32con, win32 ...

  5. 【转载】分布式系统理论基础 - 一致性、2PC和3PC

    引言 狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作.广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]: What is ...

  6. 【转载】细聊分布式ID生成方法

    一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:tiezi-id 这个记录标识往往就是数据 ...

  7. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

  8. no matching provisioning profiles found

    问题:真机连上,执行这个提示. 解决: 项目->targets->Bulid Settings-> 1,Provisioning Profile->选择配置Bundle Ide ...

  9. Enum to String 一般用法

    目录 一.Enum Review 二.使用name()方法转换为String 三.使用toString()方法转换为String 四.使用成员属性转换为String 一.Enum Review ​ J ...

  10. 漫谈程序猿系列:无BUG不生活

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZm9ydW9r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...