在2014年结识robot framework,缘于一个偶然的机会。一个测试前辈推荐了robot framework。 Robot framework是python语言的测试框架。简单的看了一下介绍,觉得不错,很适合新手入门。而且测试部门的领导也很支持引入开源的自动化测试工具。
先来说说环境的搭建吧,对于入门者这个最重要了。首先安装Python,Jython(如果不是用java有关的library,可以不安装Jython),Wxpython;然后安装robot Framework, 安装Ride( 测试用例编辑和执行器,不是必须的。但最好安装ride,使用方便)。 robot 框架本身自带了很多test library,包括Builtin,Operating System,Collections, String等,这些library不需要额外安装了,安装完框架后就可以直接使用了;对于第三方提供的测试library需要额外安装,我们要根据测试需求安装相应的测试library即可。例如测试web程序,安装selenium或者watir library; 测试数据库使用db library;测试java程序使用swing library。library的具体安装细节在这里就不详述了,可以参考library提供的文档来安装。
案例1:使用RemoteApplication + Swing Library 测试java程序(失败)
参考官网的demo,使用swing启动测试程序,但是遇到很多问题。主要是由于被测程序是通过另一个程序启动的,但是swing不识别后来启动的被测程序。
于是使用RemoteApplication先来启动被测程序,然后引入swingLibrary测试应用程序。虽然 启动没问题,Swing也能正常使用。但是有一些控件(某些dialog,checkbox) Swing却是怎么也找不到。研究了许久,没有找到答案。虽然结果以失败告终,但还是收获许多。在研究过程中发现,swing的使用是很简单的,如果排除某些控件不识别的问题,完全可以被我们拿来作为主要的测试工具。
案例2:使用Db library 测试数据库(成功)
以postgreSql为例,安装Robotframework-Database-Library-0.6和psycopg2-2.5.4.win-amd64-py2.7-pg9.3.5-release.exe后就可以开始测试了。具体参考官网的例子。
案例3:使用AutoIT library测试C语言的应用程序(失败)
发现在win7 x64下安装AutoItLibrary后,无法识别到,不能正常使用,后来经过定位,发现是3rdPartyTools\AutoIt目录下面AutoItX3.dll的问题。因为AutoItX3.dll是32位的,所以我就在网上搜索了一个64位的dll去替代。再次安装就没有问题了。
想用它实现一个简单的数据导入功能:打开窗口,点击导入按钮,然后在弹出窗口的树中选择路径,然后点击导入按钮。但是,这样一个简单的用例居然没有执行成功,现在也不知道为什么呢。现象:用例执行后显示pass,但是在选择树结构的时候,根本没有进行任何动作。
百思不得其解,后来直接研究了一下autoIT工具,用里面现成的方法就达到了我的目的。当然也有一些小插曲,比如等待时间太短,导致执行失败;展开树时一次只能展开一级等。
对比了一下robot脚本的关键字和autoit脚本中的方法,感觉都是差不多的。但是不知道为什么robot没有成功,只能以后积累经验再回头研究了。
案例4:使用selenium2Library 测试web(成功)
安装selenium2library和decorato。我只是简单的打开了网页执行了一些简单的动作,没有进行深入的研究。
案例5:使用自带的OperatingSyste(成功)
测试目的,检查文件夹是否为空,如果为空则停止检查
*** Settings ***
Library OperatingSystem
*** Test Cases ***
checkFolderIfEmpty
Wait Until Keyword Succeeds 1 min 10 sec Directory Should Be Empty C:\\TestFolder
这就是我这三个月以来对robot framework 的使用总结。有成功有失败,过程也很曲折。但是正是这次经历让我明白,选择一个工具的时候要仔细的调研,一定要在使用中来确认它和你的被测程序是否合拍。对工具也要向对人一样,用其长,避其短。