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

http://www.jianshu.com/p/b3e204c8651a

字数949 阅读323 评论1 喜欢0

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

Paste_Image.png

安装目录结构如下:

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 sysreload(sys)sys.setdefaultencoding('utf-8')
如果遇到个别无法彻底转换的如下处理:

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

 


启动远程库:


Ride中导入远程库:


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


使用Sikuli远程库方法:


对应操作的控件:

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

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

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

    一.RobotFramework 1.工具介绍: Robotframework在测试中作为组织测试用例和BDD关键字的平台,主要使用RIDE进行管理,它不是一个工具,而仅仅是一个框架,使用Python ...

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

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

  3. 移动测试主要使用的测试框架,基于python

    1.uiautomator google自己的测试框架,可以跨应用测试, 语言支持java,python也可以在GitHub上找到封装的包,去调用uiautomator. 2.Robotium jav ...

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

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

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

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

  6. Python3 Selenium自动化web测试 ==>FAQ:PyCharm中脚本不执行main函数内容解决方案

    FAQ: 情景:之前写好可以正常执行的python脚本,突然main函数下的代码不运行 原因:pycharm中,会设置py脚本按照unittest的方式运行,也就是只运行用例,不运行main函数下代码 ...

  7. pycharm通过unittest框架批量执行Python脚本用例

    1.如下图点击进入配置页 2.新增一个配置,“2”标签选择要执行的脚本的目录或者脚本文件,“3”标签选择要执行的脚本的目录

  8. 最受欢迎的5款Node.js端到端测试框架

    测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...

  9. 自动化冒烟测试 Unittest , Pytest 哪家强?

    前言:之前有一段时间一直用 Python Uittest做自动化测试,觉得Uittest组织冒烟用例比较繁琐,后来康哥提示我使用pytest.mark来组织冒烟用例 本文讲述以下几个内容: 1.Uni ...

随机推荐

  1. 基本组件的使用——UINavigationController

    作用:在多个ViewController中切换.UINavigationController内部以栈的形式维护一组ViewController, 因此,当导航进入一个新视图的时候,会以push的形式将 ...

  2. JavaScript函数表达式、闭包、模仿块级作用域、私有变量

    函数表达式是一种非常有用的技术,使用函数表达式可以无需对函数命名,从而实现动态编程.匿名函数,是一种强大的方式,一下总结了函数表达式的特点: 1.函数表达式不同于函数声明,函数声明要求有名字,但函数表 ...

  3. RabbitMQ总结概念

    AMQP:一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 http://www.diggerplus.org/archives/3110 AMQP ...

  4. [转]CSS如何设置html table表格边框样式

    原文地址:http://www.divcss5.com/wenji/w503.shtml 对table设置css样式边框,分为几种情况: 1.只对table设置边框 2.对td设置边框 3.对tabl ...

  5. 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...

  6. bzoj1251

    1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3776  Solved: 1581[Submit][Status][Discu ...

  7. Leetcode 60. Permutation Sequence

    The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  8. 【BZOJ-2938】病毒 Trie图 + 拓扑排序

    2938: [Poi2000]病毒 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 609  Solved: 318[Submit][Status][Di ...

  9. .net 开源组件

    文章转自:http://www.cnblogs.com/asxinyu/p/dotnet_opensource_project_3.html   在前2篇文章这些.NET开源项目你知道吗?让.NET开 ...

  10. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...