Robot Framework 安装使用

Robot Framework 的安装配置和简单的实例介绍

Robot Framework 介绍

Robot Framework 是一款基于 Python 的功能自动化测试框架。它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。

在我们进行全球化测试的时候可以用此框架来编写一些脚本任务,如定时下载 daily build , 配合 Selenium 完成自动化截图等,来方便我们的测试。

Robot Framework 的安装和配置

在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定。本文以在有 Python 的环境的机器上安装和使用 RF 为例。

在配置过程中需要安装如下包:python 2.7、wxPython、robot framework、robot framework ride、robot framework selenium library。

安装 Python 2.7

RF 框架是基于 Python 语言的,所以一定要有Python 环境。可以通过下面的下载页面下载对应的 Python 版本。

下载页面:https://www.python.org/downloads/

下载完成后,选择默认项进行安装。

安装完后,需要设置环境变量:计算机—属性—高级系统设置—环境变量—系统变量—Path,写入 C:\Python27 和 C:\Python27\Scripts(更改为您指定路径即可)。

(环境变量必须配好,否则后续需要的pip等命令不生效)

同时我们也可以通过 DOS 环境来验证安装的 Python 信息。

安装 WxPython

下载页面:http://wxpython.org/download.php#stable

在选择版本下载的时候要注意选择与 Python 版本对应的版本,并且选择 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否则安装完成后不能支持中文。

(本人安装过程中遇到的情况是,下载64位的wxPython安装后不匹配,必须安装32位的wxPython才能适配,此情况非个例!)

下载完成后,选择默认项进行安装即可。

安装 PyCrypto

下载页面:http://www.voidspace.org.uk/python/modules.shtml#pycrypto

选择对应的 pycrypto installer 版本,进行默认安装。需要在安装库(如 SHHLibrary)之前进行安装,否则会出现错误“Can't find vcvarsal.bat”。

安装 Robot Framwork

进入 Python 的安装路径,执行命令“pip install robotframework”或者通过下载页面 https://pypi.python.org/pypi/robotframework下载源码。

解压后,执行命令“python setup.py install”进行安装。进入 Python 的安装路径,执行命令“pipinstall robotframework”。

安装 robotframework-ride

进入 Python 的安装路径,执行命令“pip install robotframework-ride”。

安装需要的 Library

如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等。进入 Python 的安装路径,分别执行以下命令:

清单 1. 安装 Test Library

在线安装:

pip install robotframework-selenium2library

pip install robotframework-archivelibrary

pip install robotframework-SSHLibrary

pip install robotframework-ftplibrary
pip install pip2pi
pip install robotframework
pip install robotframework-ride
pip install robotframework-requests 
pip install robotframework-jsonlibrary 
pip install robotframework-jsonschemalibrary
pip install robotframework-redislibrary
pip install robotframework-databaselibrary 
pip install robotframework-sshlibrary 
pip install psycopg2
pip install pymysql      
pip install redis             
rem pip install hbasepy
pip install selenium
pip install robotframework-selenium2library
pip install robotremoteserver

完成以上步骤后,RobotFramework 的安装工作已经完成,可以通过执行命令“pip list”查看已经安装的产品,如图 1 所示:

图 1.RobotFramework 安装产品列表

 

RIDE 编辑器介绍

RF 是通过 RIDE 编辑器进行工作的,安装成功后,执行命令“[PythonDir]\Scripts\ride.py”,就可以打开 RIDE 编辑器,如图 2 所示。打开之后就可以进行创建测试项目,创建测试用例等操作,在后面的实例讲解中有具体步骤。

图 2.RIDE 编辑器启动界面

创建测试项目

选择菜单栏 File —>New Project,输入项目名称,选择 Directory type,选择目录。

图 3. 创建测试项目

创建测试套件

右键点击刚创建的测试项目,选择 New Suit,输入 name , 选择 File type。

图 4. 创建测试套件

创建测试用例

右键点击刚创建的测试套件,选择 New TestCase,输入名称。

图 5. 创建测试用例

导入库

在实际项目中,我们需要运用 RF 框架编写基于 web 的测试用例,我们需要 Selenium 的库支持。所以,我们在使用的过程中需要加载 selenium2library 库。

图 6. 导入测试库

在“测试套件”的 Edit 标签页,点击“Library”按钮,弹出输入框,Name 输入:Selenium2Library ,点击 OK 完成。

如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。

编写测试用例

可以通过快捷键 F5 来查询脚本的关键字。以打开浏览器为例,输入关键字“open”进行搜索,查询到一个“Open Browser”的关键字,点击这个关键字,就出现了它的用法和说明,如图 7。

图 7.Search Keywords

熟悉这个关键字用法之后,可以在 test case 里面进行尝试。“Open Browser”显示蓝色,说明它是一个合法的关键字,后面为红色说明需要输入一个参数,从其用法可知,需要输入 URL。更多关键字的用法可以熟悉 API 文件。

图 8.keywords 实例

编写测试用例的时候还可以选择添加变量。变量是 RF 的常用的功能,它能在测试数据的大多数地方使用。主要有以下几种:

标量变量:语法 ${scalar }。当在测试数据中使用标量变量时,它们将被分配的值所代替。

列表变量:语法 @{LIST}。列表变量是复合变量,可以分配多个值给它。

数字变量:变量语法可以用来创建一个全是整型和浮点型的数字:整型${80}、浮点型${3.14}。

Boolean 变量:${true/false}。

Null/None 变量:${null/None}。

空格${SPACE} 和空${EMPTY} 变量等。

图 9. 添加变量

运行测试用例

以上几步完成后,就可以在 Run 页面,进行运行,并查看结果,具体如图 10 所示:

在运行完测试之后,也可以进行查看 log 文件等操作。

图 10. 运行测试用例

简单的测试用例的编写

安装完成 RF 之后,通过 RIDE 编辑器的介绍,对 RF 的工作原理有一定了解之后,在这一部分主要给大家介绍一个简单的实例:从服务器上下载指定的文件。

首先按照上面的步骤来进行:创建项目---->创建 Test Suite---->创建 Test Case。

创建项目

菜单 File -> New Project,在弹出“New Project”对话框选择 Type 为 Directory,然后填写 Name,点击 OK 按钮。

创建 Test Suite

在已创建的项目上点击鼠标右键,选择 New Suite,在弹出“Add Suite”对话框中选择Type 为 File,然后填写 Name,点击 OK 按钮。

添加所需的库文件,选定 Suite 然后点击右边 Library 按钮,在弹出对话框的 Name 后输入 FtpLibrary 并点击 OK 按钮,添加其他 Library 也是如此,具体如图 11 所示:

图 11. 添加 Library

添加所需的变量,选定 Suite 然后点击右边 Add Scalar 按钮,在弹出对话框的 Name 后输入变量名,注意变量的结构是${name}or @{name},在 Value 后输入变量的值。

图 12. 添加变量

创建 Test Case

在已创建的 suite 点击鼠标右键选择 New Test Case,在弹出对话框的 Name 填写 Name,点击 OK 按钮。

至此,项目已经创建好了,Suite 创建了也添加了所需要的 Library,Test Case 也创建好了,接下来就可以在 Test Case 里编写测试用例了,也就是在表格输入关键字和参数或变量。

图 13.TestCase 实例

注:在图中表格里的蓝色字体是库中的关键字,绿色字体是变量,黑色字体是系统自带关键字。

下面对 OnPremise 这个 test case 进行解释。

图 14.OnPremise--连接 FTP 服务器

目的:连接 FTP 服务器。

通过关键字 ftp connect 以及参数,包括用户名${uname_ftp_server} 和密码${pwd_ftp_sever},来连接 FTP 服务器${build_ftp_sever},并设定超时时间为 300 秒。

图 15.OnPremise--记录当前路径

目的:记录当前路径。

Cwd 关键字切换并进入所需路径${path_ftp_server},然后通过 Pwd 输出当前路径并保存到变量${output}中。

图 16.OnPremise--创建本地文件夹

目的:创建本地文件夹,用来存放下载的文件。

由于服务器路径目录是以日期结束,将此通过 Split String From Right 关键字分离出来并保存到${currentBuildLevel},最后生成完整路径${currentDestination},并通过 CreateDirectory 关键字来创建目标文件夹。

图 17.OnPremise--下载所有所需的文件

目的:下载所有所需的文件。

需要下载的文件不止一个,可通过 FOR 循环在列表变量 @{targetFiles} 中分别取出目标文件名,再通过 Download File 关键字来逐一下载并保存到${currentDestination} 路径下。

总结

Robot framework 关键字自动化框架,它拥有强大而丰富的 Library,以及简单易用的关键字方式的使用,可以很好地支持全球化测试部门的测试工作,从而减少编写代码的时间同时也大大地提高了工作效率。相信通过对 Robot framework 关键字自动化框架更深的使用和了解,将不仅仅只是帮助自动下载文件,也会在更多更广的方面带来越来越多的益处。

 

 

 

 

robotframework 入门

分类: LINUX

    其实我不喜欢动不动就框架,动不动就架构,整出一坨专业术语搞的玄而又玄,让人云山雾绕,我想做的事情很简单,自动地测试我的多个程序,更友好的显示出我的程序的测试结果。

    当我的程序比较少的时候,我可以手工的执行测试程序,察看结果。但是如果的程序多了之后,我不能天天手工去执行,这样的话,太费时了,而且,通过不通过还要自己去看 $?. 有人说,你写好的程序,不改动,为啥天天测一遍。实际情况是,有时候我会改这些程序,对外接口不变,内部实现有时候会改动,我希望有一个工具能够每天帮我测试一遍所有的代码,把最终的结果用更友好,更可读的方式呈现出来。

   我的同事Kai,做了很多这方面的学习研究工作,我向他讨教了一些经验,昨天晚上和今天早上自己学习了下,给自己搭建了一个robot framework的框架。很多东西我也不懂,现在还是入门级别的水平,想深入学习的筒子请移步 robot framework  ,去获取更过详细的信息。

    第一步: 安装python

1.      root@manu:~/code/c/self/hello# python -V

2.      Python 2.7.3

    我就不多说了,如果装不上python,后面内容也不需要看了。

    第二步: 安装 robotframework
    下载地址:http://code.google.com/p/robotframework/downloads/detail?name=robotframework-2.7.5.tar.gz
    

1.      tar zxvf robotframework-2.7.5.tar.gz

2.       

3.      cd robotframework-2.7.5

4.       

5.      python setup.py install


    第三步:安装robotframework-seleniumlibrary
    这步骤应该是可选的,这是一个web test library。当时我同事建议我装上我就装上了,具体作用我自己也不明了。
   
    下载地址:http://code.google.com/p/robotframework-seleniumlibrary/downloads/list

1.      tar -zxvf robotframework-seleniumlibrary-2.9.1.tar.gz

2.       

3.      cd robotframework-seleniumlibrary-2.9.1

4.       

5.      python setup.py install

    整个robot framework的框架搭建是非常简单的,这也是这个东西的优势。如果巨复杂,谁愿意用啊?

    下面是关键部分,我用我前段时间写的红黑树的测试代码作为例子。我的红黑树有测试代码:这些代码不需要看,我测试了创建,插入,删除这几个接口。这个测试程序会编译成可执行程序,如果测试通过,返回0,如果出现异常,或者返回值是其他值,或者干脆就段错误了,也会被robotframework捕获到,最终生成结果报告。

    下面开始详细步骤:

    1 建立一个auto_test的目录,将来我们的测试脚本都会放在这个下面。

1.      mkdir ~/auto_test

   
    2 为rb_tree 这个程序建立一个测试代码坐在的目录
 

1.      cd ~/auto_test

2.      mkdir rb_tree

    3 写测试脚本:

1.      root@manu:~/auto_test/rbtree/library# cd ..

2.      root@manu:~/auto_test/rbtree# ll

3.      总用量 16

4.      drwxr-xr-x 3 root root 4096 12月 23 13:48 ./

5.      drwxr-xr-x 4 manu root 4096 12月 23 13:15 ../

6.      drwxr-xr-x 2 root root 4096 12月 23 13:49 library/

7.      -rw-r--r-- 1 root root 481 12月 23 13:48test_rbtree.txt

8.      root@manu:~/auto_test/rbtree# ll library/

9.      总用量 12

10.  drwxr-xr-x 2 root root 4096 12月 23 13:49 ./

11.  drwxr-xr-x 3 root root 4096 12月 23 13:48 ../

12.  -rw-r--r-- 1 root root 100 12月 23 13:38test_rbtree.py

    我们看下test_rbtree.txt的内容:


    上面这种格式是robot framework支持的三种文档格式之一。这三种格式是
    1 HTML ,不多说。
    2 TSV格式 ,这个我没用过,我也不懂,不多说
    3 纯文本格式,比如说我这个test_rbtree.txt。(汗一个,总算有个稍懂一点的了)
    官方文档里面还提高了reST格式,这个咱也不懂。但是对这个感兴趣的筒子可以去看官方文档,如果英语不过关的筒子可以去http://blog.sina.com.cn/s/blog_654c6ec70100zj6p.html 这个地址,这个博主写了好多篇robot framework的文章。

    一个test case 应该有四个部分组成,Setting,Variable,Testcase,Keyword,但是也不是必须的,比如我的test case 只有2个,Setting 和Testcase.

    Setting 一般是告诉pybot 我的测试库文件在哪儿,比如我的测试代码就是library下的test_rbtree.py,一些资源文件,变量文件也会在这里声明,但是我们没有这些。

    其中Force Tags会在输出结果中体现。我们起一个比较有意义的tag,比如红黑树是基本的数据结构,我所有的基本数据结构的tag都命名为 basic data  structure 。 他们就能在输出中聚在一起。

    Test Cases 中test_rbtree表示我这一测试项的名字是test_rbtree,这个名字可以随便起,没关系。但是最好是能明确告知这个测试测的是什么。

    Argument这一列下面的test_rbtree表示的是function,必须出现在测试库文件里面,就是在library/test_rbtree中必须要有test_rbtree这个function。

   

1.      root@manu:~/auto_test/rbtree#cat library/test_rbtree.py

2.       

3.      import os

4.      def test_rbtree():

5.          return os.system('/home/manu/code/c/self/rbtree/test')

    我们这个测试项的名字是test_rbtree,执行library/test_rbtree.py里面的test_rbtree 函数,将返回值给val变量,
判断 val == 0,如果val ==0,表示测试通过,否则,测试失败。

    Should Be True 是Robot Framework 自动提供的。表示应该是表达式应该成立,如果不成立表示failed。

    这就比较简单了,简单地说我们的一个测试例子就完成了,下面我们利用pybot生成报表。

     
    我们可以看到,我们的测试例子通过了,同时生成了三个结果文件。我们看下生成的report。

    很好看吧。有人说,这是一个文件的report。 其实很简单,你在auto_test下面多建几个类似的文件夹,然后对auto_test 执行pybot,他会将auto_test下的每个case都会跑到,生成一个总结果。
    下面是一个有成功有失败的例子,我故意将test_hello测试失败。
   
   
    当然了,我接触robot framework的时间还短,很多东西不懂,需要在实践中学习。 我先用起来,慢慢提高。希望路过的高手可以指点下。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值