某互联网后台自动化组合测试框架RobotFramework+Python+Sikuli
一、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的更多相关文章
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
- 基于Python的接口自动化-unittest测试框架和ddt数据驱动
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- [原创] Web UI自动化应用测试框架实践 - 概览
之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要 ...
- Selenium+Python+jenkins搭建web自动化测测试框架
python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/ (Wind ...
- 基于POM---UI测试框架
为什么会出现这个半自动化UI测试框架 我进入公司的前一个月从事的手工测试,为了提高自己的测试效率在工作时间之外写了一个半自动化的UI测试(害怕手工测试做久了,忘记自己还学过软件开发), 为什么我把它叫 ...
- 用 Python 测试框架简化测试
用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...
- RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...
- Web自动化之Headless Chrome测试框架集成
使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...
- RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)
本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...
随机推荐
- MSSQL 自定义函数详解
自定义函数分为:标量值函数或表值函数 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数.可以使用多条 Transact-SQL 语句定义标量值函数. 如果 RETURNS 子句指定 ...
- DevOps之基础设施
唠叨话 关于德语关我屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <信息技术(IT )> 关于IT信息技术的基础设施,知识与技能的层次(知道.理解.运用) ...
- Appium python自动化测试系列之移动自动化测试前提(一)
1.1 移动自动化测试现状 因为软件行业越来越发达,用户的接受度也在不断提高,所以对软件质量的要求也随之提高,当然这个也要分行业,但这个还是包含了大部分.因为成本.质量的变化现在对自动化测试的重视度越 ...
- 【前端】windows64位必备软件清单
目录 一.前言 二.日常必备 三.前端相关 四.个人习惯 一.前言 重做系统以后,安装各种软件就是挺烦人的一件事. 特地整理成文章,并且将相关软件上传到了百度网盘,省的以后再各种找资源了. 百度网盘下 ...
- LINUX 笔记-ubuntu 配置 jdk 环境
在 /etc/profile 文件尾添加 JAVA_HOME=/opt/jdk1.8.0JRE_HOME=${JAVA_HOME}/jre PATH=$PATH:$HOME/bin:$JAVA_H ...
- 处理MySQL服务器无法启动的问题
MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保存在data文件夹中的,网上有人说把5.6版本的data文件夹拷贝一个,这种说法听听 ...
- Appium python自动化测试系列之等待函数如何进行实战(九)
9.1 等待函数的使用 9.1.1 为什么要使用等待函数 我们在做自动化的时候很多时候都不是很顺利,不是因为app的问题,我们的脚本也没问题,但是很多时候都会报错,比如一个页面本来就有id为1的这个 ...
- Vue源码后记-其余内置指令(3)
其实吧,写这些后记我才真正了解到vue源码的精髓,之前的跑源码跟闹着玩一样. go! 之前将AST转换成了render函数,跳出来后,由于仍是字符串,所以调用了makeFunction将其转换成了真正 ...
- 2017年编程语言排行榜Top10,第一名是?
关注 最近,IEEE Spectrum 杂志(美国电气电子工程师学会出版的旗舰杂志)发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜.据介绍,IEEE Spectrum 的排 ...
- SQL注入技术
TalkTalk的信息泄漏事件导致约15万人的敏感信息被暴露,涉嫌造成这一事件的其中一名黑客使用的并不是很新的技术.事实上,该技术的「年纪」比这名15岁黑客还要大两岁. [译注:TalkTalk是英国 ...