基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=>'xxx’).attribute_value("href") rand_select 随机选择select list中的某一项 ie.select_list(:name=>’’).rand_select popupwin 点击弹窗上的‘确定’按钮 ie.popupwin.butto…
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid. Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java.python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览…
今天我们来讲一下基于Python的HTTP接口自动化测试框架的实现,范例如下: 一.测试需求描述 对服务后台一系列的http接口功能测试. 输入:根据接口描述构造不同的参数输入值 输出:XML文件 eg:http://xxx.com/xxx_product/test/content_book_list.jsp?listid=1 二.实现方法 1.选用Python脚本来驱动测试 2.采用Excel表格管理测试数据,包括用例的管理.测试数据录入.测试结果显示等等,这个需要封装一个Excel的类即可.…
基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动化测试方案与实施(三)   基于Ruby的watir-webdriver自动化测试方案与实施(二)   基于Ruby的watir-webdriver自动化测试方案与实施(一) 关于Watir的安装文章网上一大堆,但真正靠谱的没有几个,不是报错就是安装包不对.我开始也是初哥,用了近一个星期才总结出来一…
对于自动化测试,尤其是UI的自动化测试.是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一. 对于手工测试和自动化测试的优劣,网上有很多论述,在这里不作展开讨论.但是,让测试人员解放生产力,提高效率,把精力关注与最为重要的核心业务逻辑与测试设计上,是每个测试团队所必需要关注的.因此,在适当的范围内开展自动化测试,是可以提高整个测试团队的生产率的. 对于Selenium,这个东西是一个浏览器应用程序测试工具.之所以选择它做WebUI的自动化测试主要是因为它有以下两大…
关于测试框架搭建的详细过程,会在另一篇文章中详细介绍:http://www.cnblogs.com/leeboke/p/6145977.html 摘 要 目前基于Jmeter的接口自动化测试框架,大多只实现脚本维护和自动调度,无法与Testlink进行互通,实现测试方案与自动化实施流程连接,本文基于Testlink.Jmeter.Jenkins实现:通过Testlink统一维护接口自动化测试用例,Jmeter编写和运行测试脚本,Jenkins实现统一调度,并返回执行结果和测试报告到Testlin…
到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当前比较流行的Java应用程序测试框架有JUnit和TestNG两种, 从上图可以看到,相对于JUnit4来说,TestNG更具竞争优势,功能完备.而且,从实际使用的角度来说,参数化的设置及功能,以及处理有上下依赖关系的测试时,JUnit测试框架有着明显的劣势.因此,我们在这里着重学习TestNG框架…
关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具体操作步骤度娘知道): 1. 安装java jdk 2. 配置java jdk环境变量 3. 安装Android jdk(嫌麻烦直接下载:Android Studio安装,大约1.8g) 4. 配置Android jdk环境变量 5. 安装和配置好python开发环境 框架搭建(建议使用pychar…
我们继续回到自动化测试框架的主线上来,在前面的文章中,我们定义一个页面元素的主要参数有:路径,找寻方式,等待时间,名称,这个四个参数.另外,我们还需要考虑一个问题,就是网站的页面. 举个例子来说,如果A页面上有“新增”,“选择”,“保存”等按钮,B页面上也有“新增”,“选择”,“保存”等按钮,我们应该如何处理这种情况呢? 当然,有的小伙伴可能会说,我就直接命名为“新增A”,“选择A”,“保存A”,“新增B”,“选择B”,“保存B”就是了.这样当然是可以的. 但是,在维护自动化脚本的时候,你就会发…
前面,我们讲了如何使用POI进行Excel的“按需读取”.根据前面我们写的BasePageX,我们可以很轻松的写出来基于这个“按需读取”的BasePage. package webui.xUtils; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.util.HashMap; import org.openqa.selenium.WebDriver…
本篇我们来讨论,如何写一个浏览器初始化的类.在写之前,先思考一下,我们需要一个什么样的初始化? 先来看看使用原生的Java + selenium是怎么做的.(以firefox为例) System.setProperty("webdriver.gecko.driver", "c:\\geckodriver.exe"); driver = new FirefoxDriver(); 上面是个典型的例子,System.setProperty("webdriver驱…
基于上一篇的内容,这里我们开始写监听类Listener.我这里写监听类的思路是,继承TestListenerAdapter这个类,然后对其中的方法进行重写.网上也有很多资料,建议先学习一下,然后写出来. package webui.xUtils; import org.openqa.selenium.WebDriver; import org.testng.ITestContext; import org.testng.ITestResult; import org.testng.Reporte…
UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools版本建议选择28及以上 配置appium环境,并确保appium版本1.9及以上 目前只支持安卓手机,建议使用安卓7.0及以上设备 运行时候,电脑只能同时连接一台测试机 三.框架结构和原理 3.1 框架原理 框架结构设计分为四层,自下而上分别为:基础工具类Base层.页面操作PageObject层.…
之前,我们使用了读取XML文件的方式来实现页面元素的读取,并做成了基础页面类.下面,我们来进行一些扩展,通过Excel来读取页面元素. Excel的使用,大多数人应该都不陌生.那么Java读取Excel的方式主要有两种,这两种分别使用的是不同的jar包来实现.本篇我们来介绍其中的一种,即使用JXL的jar包,实现Excel文件的读取. 在项目中导入jar包:jxl-2.6.12.jar  下载地址:https://mvnrepository.com/artifact/net.sourceforg…
上篇我们写了java读取xml文件的类,实现了可以从xml文件读取元素的方式.那么,接下来我们需要考虑一个问题.我们拿了这些元素之后怎么去操作呢? 先来看看我们手工测试的时候是怎么进行的. 双击浏览器,打开网站(浏览器初始化),然后在打开的网页上进行一些操作(比如输入,点击什么的).假如,我们根据每个页面来写一个类,这样的话如果有几百个页面,我们就要封装几百个类,这样做也是非常的麻烦和复杂!,也不利于自动化脚本的维护. 进一步想想,其实我们在每个页面上所做的操作也就那么几种.(输入文字,点击,得…
在上一篇我们讲了关于WebDriver的版本,浏览器初始化,以及下载的设定. 在设置IE浏览器进行WebDriver的测试时,通常会遇见以下几种错误: 1.没有关闭IE浏览器的保护模式. 当运行测试用例后出现类似以下内容的错误: Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Prot…
在编写完Log类和监听类之后,终于要回到正轨上来了.我们继续开始写UIExcutor的实现类. PS:如果你想让你的报告更加美观一些.推荐使用reportNG这个jar包. 在项目中导入reportng-1.1.5.jar,这个jar包网上可以找到.可是具体在哪里下载的我也忘了.....这里先提一下,到后面我们再来详细的说明. 还记得我们之前写过的UIExcutor的接口吗?我们在这里需要一个一个的实现接口中的方法.(一个都不能少!) package webui.xUtils; import j…
在有了Position类和接口类之后,我们是不是立刻就要着手开始写实现类了呢?按照一般的顺序是这样.但是,我们这里先停一下.原因有二: 1)既然是写一个框架,我们希望总体的功能上是全面的.实现类中,我们需要设计和实现各种具体的操作方法.那么,如果中间出了问题,我们希望能够有所记录(log),所以需要有一个Log类. 2)既然是需要记录,我们希望能够在每次测试的测试报告中,体现该次测试操作的记录.那么,就需要对所做的测试进行监听,所以我们也需要一个监听(Listener)的类. 在写log类之前,…
上一篇我们讲了怎么利用Java的反射机制,将Excel的读取到的数据,赋值给我们构造函数中定义的变量. 接下来就简单了,我们将实际实现这个读取的简单过程.来看下面一段代码. private static <T> List<T> transToObject(Class<T> clz,Workbook xssfWorkbook, String sheetName) throws InstantiationException, IllegalAccessException,…
上一篇说了利用JXL的jar包来读取Excel的代码.在Java中,还可以用另外一种jar包来读取Excel的内容,那就是Apache的POI. 这里和之前一样,需要导入POI的jar包,建议导入这三个:poi-4.0.0.jar,poi-ooxml-4.0.0.jar,poi-ooxml-schemas-4.0.0.jar, 下载地址:https://mvnrepository.com/search?q=POI 我们先从最小的概念开始,读取一个Cell,即Excel中一个“格子”的内容. pr…
在有了基础的Position类之后,我们需要考虑我们在寻找完页面元素之后,需要做什么.这个“做”什么,可以理解为我们在页面上需要对应的一系列动作.比如:点击,输入,切换窗口,寻找元素,判断元素是否存在,智能等待,获取弹窗文字等等.在实际的测试中,我们需要用这一系列的动作来完成测试操作. 在这里,我们使用接口+接口实现类的方式来完成这里的编写.这是因为我们可以随时增加接口的内容,然后在实现类中通过代码去实现.通过Java的继承特性,我们需要把写在接口里的方法一个个具体实现,从而保证不会漏掉. pa…
背景简介 在软件开发领域,持续集成和部署对于软件测试自动化提出了越来越高的要求,基于 Eclipse 应用在这一需求中仍然占据重要的组成部分.目前主流的测试自动化工具主要以录制回放的功能为主,辅助以脚本的方式实现.然而,基于此的测试方法往往具有测试用例维护复杂,测试过程容易失败的问题,这直接影响了测试效率.SWTBot 作为 Eclipse 官网推荐的自动化测试工具,提供了专业的类库以及扩展点,在 Eclipse 应用的自动化测试中具有先天的优势. SWTBot 是基于 Eclipse SWT…
声明:原文出自"前端之巅"微信公众号"爱奇艺基于AI的移动端自动化测试框架的设计"一文,作者:何梁伟,爱奇艺Android架构师.文章提供了一种基于AI算法的自动化测试框架AIon,该框架并未开源,目前搜索不到相关资料,但从作者的设计思路上很受启发. 理想种的移动UI自动化框架: 易于开发和维护 稳定性 执行效率 跨平台 跨应用 支持Hybrid(混合应用) 传统的UI自动化框架(UIAutomator.Espresso.appium等),或多或少在这些方法做的不够…
一.先来看一个小DEMO 通过上一篇博文<Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署>的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解: 图1-1 测试脚本:测试百度搜索 我们现在使用Watir来实现一个“百度搜索框测试”的自动测试, 代码如下: #encoding: utf-8 #测试百度搜索 require 'watir' puts "打开浏览器" browser = Watir:…
一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够为国内web自动化测试的发展做一点绵薄的贡献吧,笑~ 二.Watir搭建流程 图1-1 需要安装的工具 下载地址:http://railsinstaller.org/ 因为安装Ruby还需要用到其他的一些开发工具集,所以建议从网站http://railsinstaller.org/下载,而且使用该安…
基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动化测试方案与实施(三)   基于Ruby的watir-webdriver自动化测试方案与实施(二)   基于Ruby的watir-webdriver自动化测试方案与实施(一)   Watir-WebDriver       —— 软件测试的自动化时代 QQ群:160409929 支持哪些浏览器? 几…
web自己主动化測试一直是一个比較迫切的问题 图1-1 须要安装的工具 http://railsinstaller.org/ 由于安装Ruby还须要用到其它的一些开发工具集.所以建议从站点http://railsinstaller.org/ 下载,并且使用该安装包的话.它会帮你把环境变量也设置完成,我使用的版本号是:railsinstaller-2.2.4.exe,建议下载最新版本号. 開始安装RailsInstaller工具包.安装到默认位置就可以. 这个对勾建议打上.它会帮你配置git和ss…
nightwatch 是使用nodejs编写的,基于Webdriver api 的端到端自动化测试框架 包含以下特性 清晰的语法,基于js 以及css 还有xpath 的选择器 内置测试runner,支持串行.并行.重试,以及等待,同时支持基于标签的分组 云测试集成,当然这个在国内可能不是很有价值 webdriver 服务,自动管理selenium 或者webdriver 服务 page对象支持,我们可以基于page 对象进行页面元素的选择,同时支持css 以及xpath 的选择器 持续集成,内…
接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本首先要学会捕获元素,接下来就要学习页面元素的捕获. 页面元素 attribute_value 获取当前控件的属性 Value = ie.link(:id=>'xxx’).attribute_value("href") rand_select 随机选择select list中的某一项…
一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制流的功能.与OS提供的进程不同的是,线程可以共享内存空间. []完全面向对象. []不需要内存管理:具有垃圾回收(Garbage Collect, GC)功能,能自动回收不再使用的对象. []解释执行:其程序无需编译即可轻松执行. []功能强大的字符串操作/正则表达式. []具有异常处理功能. []…