一、RobotFramework

1.工具介绍:

Robotframework在测试中作为组织测试用例和BDD关键字的平台,主要使用RIDE进行管理,它不是一个工具,而仅仅是一个框架,使用Python进行开发,同时支持WEB测试(Selenium)、Java GUI 测试,启动线程、终端、SSH等、支持BDD模式,相关的框架组织结构如下:

安装目录结构如下:

2.用例脚本组织:

针对Selenium, RobotFrameWork有第三方库:selenium2library,支持目前主流的页面元素,使用关键字的组织方式,能够帮助我们更快的组织用例,下图是小区无忧的部分自动化脚本:

说明:

MySuite下为各个用例

用例又被拆分为很多流程:Flow.txt

用例流程又被拆分为更细的步骤:例如图片中的add_banner_step、 add_msg_data_step、Login_step

3. 用例分层:

组织用例à用例流程à用例步骤,用例使用分层实现,并且仅仅调用关键字进行组织,这样将各个PAGE的事件和元素之封装在各自的步骤中,如果界面元素有任何改动,便于维护和更新,减少变动带来的影响。(至于界面元素怎么定位,请GOOGLE相关的Selenium2的相关知识,另外需要重点说的是,如果没有经验的话,最好自己使用Python写一些相关的代码,不要直接就上RIDE,你可以使用Python+Selenium2+unittest框架)

4.数据分层:

使用EXCEL组织测试数据,将测试数据独立出来,这里用到了自己编写的Python脚本,具体用法如下:

引入自定义的脚本,作为Library,在F5关键字中能够识别:

使用关键字,定义各个Excel和定位Sheet,根据字段名获取Sheet的字段名,以传参的方式调用数据:

Excel定义的位置:

具体的Excel内容:

这样实现了数据的分层,以后,需要在数据层修改数据,直接表格修改就可。

5.BDD模式:

用例也支持BDD模式的组织方式,如图:

二、Python

因为RobotFrameWork是使用Python开发的,所以使用Python作为扩展的主要脚本语言,主要目的是扩展满足相关项目的测试要求的脚本,例如,上面所提到的对Excel读取数据的扩展脚本:

会遇到的可能的问题:中文识别问题,目前来说,由于Python本身的局限,我们测试的软件基本是中文,所以有可能会遇到中文UNICODE问题,对于这个问题,一般是这样解决:

在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容:
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

如果遇到个别无法彻底转换的如下处理:

三、Sikuli

Sikuli的引进,其实比较纠结,因为对于小区无忧中会不会比较多的使用不规范的控件和过多的模态窗口(模态窗口问题还好解决,可以通过异步JS和Selenium2的Handle方法基本解决)是一个未决的问题。Sikuli是非RobotFrameWork的官方工具,所以需要使用远程Library的方式进行调用:

组织目录:

启动远程库:

Ride中导入远程库:

定义Sikuli截取的图片的路径:

使用Sikuli远程库方法:

对应操作的控件:

四、持续集成

使用jenkins进行持续集成,jenkins本身提供了RobotFrameWork的插件,只要定义好相关的参数就可以了,运行通过命令行的方式进行,不会依赖平台。

待续。。。。。。

某互联网后台自动化组合测试框架RobotFramework+Python+Sikuli的更多相关文章

  1. 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

    某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...

  2. 基于Python的接口自动化-unittest测试框架和ddt数据驱动

    引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...

  3. [原创] Web UI自动化应用测试框架实践 - 概览

    之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要 ...

  4. Selenium+Python+jenkins搭建web自动化测测试框架

    python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/  (Wind ...

  5. 基于POM---UI测试框架

    为什么会出现这个半自动化UI测试框架 我进入公司的前一个月从事的手工测试,为了提高自己的测试效率在工作时间之外写了一个半自动化的UI测试(害怕手工测试做久了,忘记自己还学过软件开发), 为什么我把它叫 ...

  6. 用 Python 测试框架简化测试

    用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...

  7. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  8. Web自动化之Headless Chrome测试框架集成

    使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...

  9. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

随机推荐

  1. 使用jquery.form.js文件进行文件上传

    本想着文件上传是一件挺简单的事,不过是获取文件地址保存到服务器而已,然而事实并非如此. 我信心满满的写下input type="file",alert input 的value,打 ...

  2. win10 uwp 设置启动窗口大小 获取窗口大小

    本文主要说如何设置我们窗口的启动大小,UWP启动窗口大小. 设置启动窗口 设置窗口大小 ApplicationView.PreferredLaunchViewSize = new Size(1000, ...

  3. 关于时钟模块DS1302的使用心得

    最近在做万年历,用到实时时钟DS1302模块,花了两天时间看资料和写驱动,想记录一下我的学习经过,顺便做一下总结. 首先就是在图书馆查各种资料,于是查到的大多是这些,主要时硬件方面的资料: 其实能查到 ...

  4. Junit基本使用

    Junit基本用法 1.创建Junit Test Case 2.基本使用(以oracle数据库操作为例) package com.csit.adminsystem1.tests; import sta ...

  5. jQuery Ajax跨域问题简易解决方案

    场景:由于业务需求,需要在一个页面显示另外一个页面,并且右键查看源代码看不到一条链接. 实现方式:使用iframe来显示这个首页,至于首页的地址则使用jQuery Ajax来获取.html代码如下: ...

  6. Unix/Linux僵尸进程

    1. 僵尸进程的产生: 一个进程调用exit命令结束自己生命的时候,其实它并没有真正的被销毁,而是留下一个称为“僵尸进程”的数据结构.这时它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度 ...

  7. php导出csv报表

    最近系统有一个导出报表功能,之前是导出的.xsl报表,但是当导出数据达到十万条时,导出经常出现超时与导出数据不全的情况,原因是导出.xsl报表会进行HTML渲染,在这步就会卡死.所以改成了导出.csv ...

  8. swift 之设计模式 适配器

    大学的时候,有一个<近世代数>的教授,他上课从来不看课本,并且也不按课本来讲解课程,但是他讲的东西比书本深刻形象(幽默,口才杠杠的),有层次感,除了授业,他还经常给我讲一些为人处世,做学问 ...

  9. 给资源文件添加指纹(Gulp版)

    至于为什么要费尽心思地给文件添加指纹,请参看前端静态资源缓存控制策略.这次要达到的小目标就是生成的资源文件能够被客户端缓存,而在文件内容变化后,能够请求到最新的文件. 需要用到的 gulp 插件是 g ...

  10. PyQt5安装目录中找不到designer.exe与pyrcc5.exe

    我安装的是PyQt5的5.9版本,在安装目录下找不到designer.exe文件.在摸索一段后发现5.9版本对库文件和相关的开发工具是分开发布的.QtDesigner是在pyqt5-tools的包里. ...