随笔分类 -  webdriver

with ruby
解决rspec 生成报告时报utf-8错误的方法
摘要:找到gems\1.9.1\gems\rspec-core-2.14.3\lib\rspec\core\formatters\snippet_extractor.rb文件中的第27行:在这边记录一下,防止以后再遇到。。。出现这个原因是因为ruby文件用utf-8格式的,但是源码都是GBK处理的,找到\lib\ruby\gems\1.9.1\gems \rspec-core-2.14.3\lib\rspec\core\formatters下面的snippet_extractor.rb文件,把 lines = File.read(file).split("\n")改成lines 阅读全文

posted @ 2014-03-16 18:57 tim_sheng 阅读(333) 评论(0) 推荐(0)

Ruby应用httpwatch进行前端页面自动化
摘要:HttpWatch概述HttpWatch是IE和Firefox浏览器上的一款插件工具,用来捕获浏览过程中所产生的数据信息,并记录其相关日志文件。虽然HttpWatch 能通过手动来控制运行,但很多时候为了提高效率,对于一些重复执行的任务,比如性能测试需要自动化来完成,这样就可以使用HttpWatch来配合自动化 测试性能来自动获取其相关数据信息,从而使得HttpWatch也能自动化进行操作。因此为了更好的配合自动化测试,HttpWatch插件专门提供自动 化接口类程序,以便外部程序来自动化获取其已经存在的数据信息。HttpWatch中提供了大约三十种以上的自动化接口,但只有四个主要的类用于控制 阅读全文

posted @ 2013-01-17 17:04 tim_sheng 阅读(1969) 评论(0) 推荐(0)

行为驱动开发: Cucumber的目录结构和执行过程 (转载)
摘要:Cucumber是Ruby世界的BDD框架,开发人员主要与两类文件打交到,Feature文件和相应的Step文件。Feature文件是以 feature为后缀名的文件,以Given-When-Then的方式描述了系统的场景(scenarios)行为;Step文件为普通的Ruby文 件,Feature文件中的每个Given/When/Then步骤在Step文件中都有对应的Ruby执行代码,两类文件通过正则表达式相关联。笔者在 用Cucumber+Watir做回归测试时对Cucumber工程的目录结构执行过程进行了研究。安装好Cucumber后,如果在终端直接执行cucumber命令,得到以下输出 阅读全文

posted @ 2012-12-10 23:02 tim_sheng 阅读(1283) 评论(0) 推荐(0)

ruby webdriver 启动firefox driver时,加载firebug的扩展
摘要:在官方wiki上看到Adding an extensionIt's often useful to have Firebug available in the Firefox instance launched by WebDriver:profile = Selenium::WebDriver::Firefox::Profile.newprofile.add_extension("/path/to/firebug.xpi")driver = Selenium::WebDriver.for :firefox, :profile => profile于是乎自己尝 阅读全文

posted @ 2012-10-17 17:02 tim_sheng 阅读(1849) 评论(2) 推荐(0)

ruby webdriver 显性等待、隐性等待、内部超时处理
摘要:显性等待: wait = Selenium::WebDriver::Wait.new(:timeout => 3) wait.until { driver.find_element(:id => "cheese").displayed? }隐性等待:driver = Selenium::WebDriver.for :firefoxdriver.manage.timeouts.implicit_wait = 3 # seconds内部超时:WebDriver在内部使用http协议与各种driver发生交互联系。默认情况下,Ruby标准库中的Net::HTTP协议使 阅读全文

posted @ 2012-10-12 16:48 tim_sheng 阅读(1967) 评论(0) 推荐(0)

ruby webdriver 启动chrome浏览器的一些小技巧
摘要:一般情况下我们启动chrome浏览器是用:Selenium::WebDriver.for :chrome但是有时候当我们访问一些特殊页面时,比如页面会提示证书错误,popup弹窗,是否翻译这些问题,有些会影响对页面的操作只要在chrome的后面加上一个参数switches,问题就搞定了Selenium::WebDriver.for:chrome,:switches =>%w[--ignore-certificate-errors --disable-popup-blocking --disable-translate]参数的个数根据需要自己选填eg:dr = Selenium::WebD 阅读全文

posted @ 2012-10-12 16:35 tim_sheng 阅读(2238) 评论(0) 推荐(0)

ruby webdriver处理flash类型的图片上传
摘要:一般的图片上传能用send_keys("图片路径")解决但是遇到flash类型的图片上传,send_keys()就无奈了,这时候我们可以引用第三方工具autoit来进行操作这边提供一个实例#encoding:utf-8require 'selenium-webdriver'require 'test/unit'require 'rubygems'require 'win32ole'class OpentestCase<Test::Unit::TestCase def setup @dr = Seleniu 阅读全文

posted @ 2012-10-11 10:40 tim_sheng 阅读(917) 评论(0) 推荐(0)

webdriver窗口最大化方法
摘要:webdriver窗口最大化方法dr = Selenium::WebDriver.for :ffdr.manage.window.maximize 阅读全文

posted @ 2012-09-27 14:21 tim_sheng 阅读(5814) 评论(0) 推荐(0)

ruby webdriver如何解决中文乱码问题
摘要:用ruby编写webdriver脚本,有时经常会遇到中文乱码的问题,统一字符集可以解决这些问题1.首先确认ide的保存方式是否和访问的页面一致,如果不一致的话请设置为一致2.有时会同时访问多个页面,或者多个iframe,或者既访问页面和iframe的情况,这个时候,需要确认每个页面和iframe的字符编码的格式分别为什么,然后作相应的转码require 'iconv' def gbk2utf8(string) Iconv.conv('utf-8','gbk',string) end def utf82gbk(string) Iconv.conv( 阅读全文

posted @ 2012-09-14 17:16 tim_sheng 阅读(3100) 评论(0) 推荐(0)

ruby+selenium-webdriver一步一步完成自动化测试-----准备篇
摘要:这一系列文章目的不是讲ruby,也不是讲selenium-webdriver,而是通过一个登录soso首页的小例子讲怎样一步一步写好自动化测试。目标是:面向对象编程,实现逻辑与数据分离。如果你觉得已经学会了selenium-webdriver这个工具,而且也可以自己写一些小例子,但是似乎又是在云里雾里,不知道怎样写出来一个 成品,不确定应该用哪种开发框架,用什么测试框架。打个比方,就好像你已经会去市场买菜、把菜切好,会用厨房的灶具打火、回锅、放油,但是就是不知道应该 怎样把菜做好。这一系列文章的目的就是写明怎样把“菜做好”开篇前介绍一个学习ruby和selenium-webdriver的地址: 阅读全文

posted @ 2012-09-13 14:51 tim_sheng 阅读(1923) 评论(0) 推荐(0)

ruby+selenium-webdriver一步一步完成自动化测试(6)—-生成测试报告
摘要:测试用例执行完后,生成一份可视化良好的测试报告,这份测试才算功德圆满。昨天用了一下午的时候查怎样生成测试报告,又走了一次不大不 小的弯路,其实通过自动化测试框架rspec就可以生成测试报告的。只需要做一点小小的“手脚”—将命令行中打印的内容追加到文件中就可以了。还记得上一篇“多个测试用例”吗?在命令行窗口中执行测试用例的命令稍做修改。命令行中执行的命令修改为:rspec -f html > result.html即:将运行结果追加到result.html这个文件中,当然啦,文件的名子你可以随便取啦。命令执行完成后,在test005这个文件夹下生成result.html这个文件,双击此文件 阅读全文

posted @ 2012-09-13 00:00 tim_sheng 阅读(1132) 评论(0) 推荐(0)

ruby+selenium-webdriver一步一步完成自动化测试(5)—–多个测试用例
摘要:在上一篇“逻辑与数据分离”中只有一个测试用例,在这篇中主要是针对多个用例。验证用户名、密码全部错误;用户名、密码全部为空;用户名为空;密码为空,几种情况登录。1.D盘新建文件夹test005,文件结构与“逻辑与数据分离中一致”2.login_dialog.rb文件内容与上一篇“面向对象编程”中login_dialog.rb内容一致3.login_main_page.rb文件内容与上一篇“面向对象编程”中login_main_page.rb内容一致4.login_data.yml文件中编写如下内容:data: mainPage: url: http://www.soso.com t... 阅读全文

posted @ 2012-09-12 23:56 tim_sheng 阅读(1306) 评论(0) 推荐(0)

ruby+selenium-webdriver一步一步完成自动化测试(4)—–逻辑与数据分离
摘要:上一篇面向对象编辑,貌似这个用例已经很完美,但是还有不完善的地方,测试数据(用户名、密码、断言的判断数据)还是硬编码,要想做的更完美,实现逻辑与数据分离,这才是自动化测试的真谛。方法:运用yaml,读取配置文件中测试数据1.D盘新建文件夹test004,test004文件夹下创建文件夹action、config、spec、tool。action文件夹中新建文件login_main_page.rbconfig文件夹中新建文件login_data.ymlspec文件夹中新建文件login_spec.rbtool文件夹中新建文件login_dialog.rb2.login_dialog.rb文件内容 阅读全文

posted @ 2012-09-12 23:52 tim_sheng 阅读(1358) 评论(0) 推荐(0)

ruby+selenium-webdriver一步一步进行自动化测试(3)——面向对象编程
摘要:前一篇文章中写了一个测试用例,看上去还算不错。但是代码的扩展性并不好,假想对登录进行手动的功能测试,会想到哪些测试用例?(验证错误的用户名正确的密码;用户名和密码为空直接点击登陆按钮。等等)是不是每个用例都要写一套代码呢?答案肯定是否定的。可以把登录的功能抽象成一个方法。进一步研究发现, 有些测试对象也是可以复用的,比如在登陆的时候我们会用到密码输入框、点击登录按钮等,可以把这些“基本动作”封装到一个类中,这样代码的灵活性和适用性 将会更强。即,面向对象编程。因此做如下改造:1.定义一个工具类,此工具类定义方法,各个方法分别用于获取登录连接、用户名、密码、登录按钮等元素;2.定义一个实现类,此 阅读全文

posted @ 2012-09-12 23:42 tim_sheng 阅读(1380) 评论(2) 推荐(1)

ruby+selenium-webdriver一步一步完成自动化测试(2)—–一个测试用例
摘要:上一篇的小例子可以正常执行通过,但是这并不代表就可以按照这个思路写测试代码了。自动化测试与手工测试是一样的,要有测试用例,有执行有结果,但是上一篇的例子里并没有。众所周知,java开发用JUnit进行单元测试、C#开发用NUit进行单元测试,selenium-webdriver也需要一个这样的测试框架来执行测试用例,这个框架可以用test::Unit,也可以用文中所用的rspec目标:利用测试框架rspec创建一个测试用例,运行上一节的代码1.安装rspec命令行中执行命令:gem install rspec2.D盘下新建目录test0023.test002中新建文件夹spec4.打开编辑器S 阅读全文

posted @ 2012-09-12 18:19 tim_sheng 阅读(1993) 评论(0) 推荐(1)

ruby+selenium-webdriver一步一步完成自动化测试(1)—–第一个小例子
摘要:第一个小例子,登录soso首页,简单直观易懂。通常我们都是这样写的,网上各种例子也是这样的。1.打开文本编辑器SciTe2.file–new新建一个文件,写下如下代码#encoding = gbkrequire 'selenium-webdriver'chrome = Selenium::WebDriver.for :chromeurl = 'http://www.soso.com'chrome.get url#~ link = ff.find_element(:id,'ua').find_element(:link,'登录')l 阅读全文

posted @ 2012-09-12 17:08 tim_sheng 阅读(2370) 评论(0) 推荐(0)

Selenium Grid深入学习
摘要:应网友要求写一个用Selenium Grid控制多系统多浏览器并行执行test case的例子。因为我这里有两台机子,我打算这样演示:一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.168.40.24另一台机子启动两个次节点hub,一个次节点浏览器为firefox,另一个浏览器为chrome (系统为windows),ip为:192.168.40.67启动各节点hub启动主节点hub命令:java -jar selenium-server-standalone-2.24.1.jar -role hub启动与主节点同一机子的次节 阅读全文

posted @ 2012-09-11 11:58 tim_sheng 阅读(5077) 评论(2) 推荐(1)

Selenium Grid
摘要:Selenium Grid允许同时并行地、在不同的环境上运行多个测试任务。这里主要演示一下怎么使用Selenium Grid。准备:1、需要两台机子2、两台机子分别安装好JDK环境3、两台机子需要从http://code.google.com/p/selenium/downloads/list下载selenium-server-standalone-*.jar包开始:Grid需要一台机子做为主节点,然后其它机子做为子节点连接到这个主节点上来。所以首先要启动主节点。启动主节点:选一台机子做为主节点。打开命令行,cd至selenium-server-standalone-*.jar包的目录下,然后 阅读全文

posted @ 2012-09-11 11:42 tim_sheng 阅读(3781) 评论(0) 推荐(0)

Selenium-webdriver系列教程(15)————万能的截图
摘要:截图技能对于测试人员来说应该是较为重要的一个技能,就像踢假球是国内球员混迹中超的必备技能一般。在自动化测试中,截图可以帮助我们直观的定位错误、记录测试步骤。记得以前在给某跨国银行做自动化项目的时候,某银的PM要求我们自动化测试的每一步至少需要1个截图,以证明每个功能都被自动化测试给覆盖过,在这种情况下截图就成了证明自动化测试有效性的重要手段。好的测试人员都会截得一手好图,就跟骨灰级宅男定会吟得一手好诗一般。webdriver的截图功能十分强悍。以前在截图的时候,最麻烦的问题莫过于页面太长而只能截到一屏,屏幕以外需要移动滚动条才能看到的区域一般是截不到的。现在webdriver解决了这个问题,无 阅读全文

posted @ 2012-09-05 22:49 tim_sheng 阅读(6305) 评论(0) 推荐(0)

Selenium-webdriver系列教程(14)————为firefox设置代理
摘要:下面的代码可以帮助你实现firefox测试运行时代理配置的功能。大概的思路是通过设置profile对象来进行配置。profile = Selenium::WebDriver::Firefox::Profile.new# 新建了url为proxy.org,端口为8080的htpp代理proxy = Selenium::WebDriver::Proxy.new(:http => "proxy.org:8080")profile.proxy = proxydriver = Selenium::WebDriver.for :firefox, :profile => pr 阅读全文

posted @ 2012-09-05 22:03 tim_sheng 阅读(505) 评论(0) 推荐(0)

导航