`
dtrex
  • 浏览: 138136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Edit 思考自动化测试--开始(一) 自动化测试的开始 自动化测试,从一个大家陌生的概念,到现在越来越多的人在关注使用自动化测试。似乎自动化测试已经成了一个“高级"。但是其实很多人对自动化测试本身有很多误解,自动化测试不是银弹,不是瑞士军刀。自动化测试并不能代替测试本身。很多领导或者客户了解到自动化测试,就都会有用自动化测试覆盖测试的冲动。在这种冲动下,投入大量的人力财力,经常是无功而返的。自动化测试到底怎么了? 自动化测试并没有想象的那么完美 自动化测试到底都有哪些问题?我们为什么会经常感觉做不下去了?为什么投入那么多,效果总是那么一点点。 自动化测试本身有自动测试 ...
也许很多让对ruby中的开源工具Watir,都有耳闻,也就是Ruby其实可以对Web的自动化测试有了很好的工具了。不过在做Web的自动化测试的时候,不知道有没有遇到过弹出窗口的问题,甚至有没有想过Ruby是否可以Window的应用进行一定的自动化测试呢? 如果有很简单的思路,既然ruby可以调用Window的Com接口,那我们是不是可以利用Win32api的接口,做些事情呢?我也是在网上很多大神的提醒下,开始做这方面的探索,不过我对C++简直就是抵触啊,C的话还算能接受,所以在做这方面的探讨有点班门弄斧,我想这个就算是我的学习笔记吧,也不能算是什么技术博客了。 做好准备 让ruby帮我们 ...
一个web功能自动化测试工具应该具备三个基础属性: 1.可以定位web的DOM元素,这个我在前面的定位已经讲过了 2.可以执行js脚本,这个不仅是上一章说的执行js,还包括对控件的写js操作 3.模拟键盘鼠标进行操作。   前两点,已经在前面都谈过了,下面讲讲第三点,模拟操作,首先说说模拟键盘操作:   键盘模拟 如果用过Selenium的话,会知道神奇的send_keys几乎涵盖了所有的输入操作,那么Watir-webdriver也是一样的模拟键盘的操作,可以使用这条命令,比方说,我想在页面上大一个回车   b.send_keys :enter    当然你会遇到组合键 ...
在很多时候,使用Watir-webdriver提供的方法,操作可能有些不方便,另外页面可能存在一些js代码,可以调用。所以很多情况,在执行自动化测试脚本的时候,也会编写一些js的脚本来执行,帮助自动化测试执行。执行js脚本只要调用execute_script命令即可。 例如:   require 'watir-webdriver' b=Watir::Browser.new b.goto("http://www.baidu.com") js=''' alert("1"); ''' b.execute ...
行为驱动的测试,如果说你还不了解这个概念,那你应该先去网上查查,如果你知道行为驱动的测试,那么我们将讲讲这个cucumber的工具,一个用于行为测试的工具。 先说安装: 1.安装ruby,这个不细说了,网上找能找出一大堆来。 2.之后下载DevKit-tdm-32-4.5.1-20101214-1400-sfx.exe,解压 3.之后安装Devkit,命令如下: ruby dk.rb init ruby dk.rb install 4.下面安装所需要的gem包 gem update --system gem insta ...
Table是经常遇到的一个数据展示组件,我们在做自动化测试的时候免不了跟他打交道。这里我们简单说一下如何处理Table这样的组件。 首先还是举个例子,     <html> <head> <title>Table</title> <style> table {border: 1px solid #ccc} </style> </head> <body> <tab ...
在网上看watir-webdriver,有人说Select框的中文无法进行选择,我自己试了一下现在的新版本0.5.3,是可以的,不用再打什么补丁了,简单的试了一下,下面是测试用的html     <html> <head> <title>select</title> </head> <body> <select name="area" id="area_select" > <option value="1&quo ...
      Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。   在自动化测试过程中,cookie可能保存一些信息,我们很多时候需要获取相关信息,或者清空他们的信息,如下的代码基本展示了主要的操作 require 'watir-webdri ...
一般自动化测试的时候,总会用到抓图,把测试当时的结果保存下来,watir-webdriver使用的是它底层的Selenium-webdriver就有的截屏工具,非常好用,具体代码如下:     browser.driver.save_screenshot 'screenshot.png'     记住,他的截屏非常强大,一般页面太长只能截一屏,然后屏幕外的需要使用滚动条,现在你使用这样的截屏,你已经摆脱了这样的麻烦了。     说道截屏,很多人都想使用屏幕录像工具来把整个过程记录下来,其实我个人认为没有太大的必要,如果录制屏幕的话,那样的话临时文件会很大,我觉得好的办法就是 ...
Page Object这种模式来组织自动化测试脚本应该说是目前比较流行的方式,这种模式有助于提高脚本的可维护性和健壮性。简单地说把,就是把页面对象和操作步骤按照Page为单位组织。举个例子吧,之前我们的脚本都是这样写的:   browser = Watir::Browser.new browser.goto "http://example.com/login" browser.text_field(:name => "user").set "Mom" browser.text_field(:name => &q ...
首先举个例子,html的js弹出窗口的代码如下: <html> <head><title>Popup Window</title></head> <body> <input id = "btn" value = "click" type = "button" onclick = "alert('hello');"/> </body> </html> ...
在实际的测试过程中,所有的业务操作不会在一个页面内完成,经常会做的工作就是弹出一个新的窗口,想新的窗口中进行操作,虽然目前很多比较流畅的页面设计都尽量避免使用这种方式,不过弹出窗口还是存在于很多web应用中。 一般弹出窗口有这么四类: 使用window.open的js命令弹出一个新的浏览器,这种方式遇到的比较少,因为实在不美观; 有一种叫做模态窗口,这个相当于页面在子窗口,子窗口不关闭,主窗口无法进行操作,也无法关闭,这种窗口一般使用window.showModalDialog来打开; 还有比较常见的窗口,就是js中的提示窗口,一共有三种alert,comfirm,prompt,而前两种 ...
Watir会等待页面load完毕,才能进行下面的操作,所以不需要等待页面加载完毕。这里所说的等待,是指在Web页面中,经常碰到的Ajax异步加载。这种加载,会在你进行一个操作后,对后台进行交互,而这种交互不会占用前台的等待,你可以进行其他任何在这个页面的其他操作,交互完毕后,可能会弹出窗口,可能会弹出控件,也可能一个控件消失。我们要做的就是等待这种过程的结束,之后进行测试案例下面的操作。等待的方法,大致上有下面几种方法   Watir::Wait.until { ... }: 等待block里面的值为true停止 object.when_present.set: 当 ...
功能自动化测试做的就是,找到页面的控件元素,然后操作这些控件,完成模拟人工的测试操作。所以开头肯定是要定位到页面上的元素。watir-webdriver提供了多方方法,帮助我们定位Web页面上的元素。   常用的定位方法如下: ...
  frame一直是一个让自动化测试工程师极其头疼的问题,尤其是watir针对iframe总是有些奇怪的问题,并且针对那些不太明白html的人来说,frame也确实比较难以理解。我简单说明一下,frame简单的说就是在一个页面里可以套用其他的页面,但是可能我们在看页面的时候没有什么感觉,基本看不出来。但是在做自动化测试的时候,就一定要关注Frame,比方说页面里面有个frame,在这个frame里包含一个其他的页面,包含一个文本框,我们要向这个文本框里写内容要写成     b.frame(:id=>"frame1").text_field(:id=>&qu ...
Global site tag (gtag.js) - Google Analytics