一、Robot Framework框架简介
        Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发。可以用于测试声明涉及到多种技术和接口的分布式的,异构的应用系统。
       测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序。因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等。
    模块化结构如下图所示
 
     Robot Framework使用手册及下载地址:http://code.google.com/p/robotframework/
      
 
二、安装
Robot Framework需要Python或Jython环境,具体需要哪个环境主要是看你使用的Test Libraries或是Test Tools的需要。
1. 安装Python或Jython;
2. 安装Robot Framework:
  • Windows:可直接下载安装程序安装,安装完成后在系统环境变量中的Path变量中新增C:\Python27\Scripts,C:\Python27为本机Python安装路径;
  • Linux:下载robotframework-2.6.3.tar.gz并解压,然后进入解压目录并执行安装命令:python setup.py install
  • 验证安装是否成功,执行命令:pybot --version
3. 安装扩展库,如果需要的话。
 
三、Robot Framework基础
1. 变量
变量是 Robot Framework的完整特征,它们能在测试数据的大多数地方被使用。最常见的是,在测试用例表和关键字表中被用于关键字的参数,但是所有设置的值中都允许使用变量。一个普通的关键字名称不能使用变量来指定,但使用内建关键字Run Keyword 可以获得这种效果.
  • 标量:语法${scalar}。当在测试数据中使用标量变量时,他们将被分配的值所代替。
  • 列表变量:语法@{LIST}。列表变量是复合变量,可以分配多个值给它。
  • 内建变量:
    • 操作系统相关的变量
    • 数字变量:变量语法可以用来创建一个全是整型和浮点型的数字:整形${80}、浮点型 ${3.14}
    • Boolean变量:${true/false}
    • Null/None变量: ${null/None}
    • 空格${SPACE}和空${EMPTY}变量
2. 测试文件语法
1. 测试用例的组织层次结构:
  • 在测试用例文件(test case file)中建立测试用例;
  • 一个测试文件自动的建成一个包含了这些测试用例的测试集(test suite);
  • 一个包含多个测试用例文件(test case file)的目录构成更高级别的测试集;
  • 一个测试集目录可以包含其他测试集目录

此外,还有:

  • 测试库(Test libraries)包含最低级别的关键字
  • 资源文件(Resource files)包含变量和更高层次的用户自定义关键字
  • 变量文件(Variable files)可以提供比资源文件更灵活的方式创建变量
 
3. 支持的文件格式
      测试数据被定义为表格形式,无论是使用超文本标记语言(HTML),制表符分隔值(TSV),纯文字,或 reStructuredText格式。Robot Framework通过文件扩展名为其选择一个测试数据解释器。只为HTML和TSV 两种文件格式提供了模板。
 HTML文件模板:
  
 
TSV文件模板:
 
 
 4. 测试数据表格
测试数据被组织在以下四种表格中。这些测试数据表格通过表格的第一个单元格被识别,下列表格的最后一列列出了可以做为表名称使用的不同别名。
在一个测试文件中,Setting与Test Case是必须要有的。
Table name    Used for Aliases  
Setting table   1.导入测试库,资源文件和变量文件
2. 为测试集和测试用例定义元数据
Setting
Settings
Metadata
 

Variable table

定义可以用在其他地方的测试数据的变量 Variable
Variables
Test case table 通过可用的关键字创建测试用例。 Test case
Test cases
Keyword table

通过低级别关键字创建用户自定义关键字 
Keyword
Keywords
User Keyword
User Keywords
 
 
四. 创建测试用例实例
下面以官网自带例子(Quick Start Guide)说明如何创建测试用例,测试文件使用HTML格式,为理解及设计方便,将以下各表放在一个html文件中。
1.  首先编写Setting table
 
Setting  Value  Comment 
Library  OperatingSystem   
Library  testlibs/LoginLibrary.py #导入用户自定义库 
Test Setup Clear Login Database #每个测试用例执行时会先执行setup
Test Teardown    #每个测试用例执行完后会执行teardown
2. 编写测试用例
 Test Case  Action Argument   Argument Argument 
 User can create an account and log in Create Valid User fred P4ssw0rd #关键字驱动,即:调用keyword表中的同名关键字
  Login fred P4ssw0rd    
Creating user with invalid password should fail [Template] Creating user with invalid password   #加上[Template]后则关键字驱动变为数据驱动
  abCD5 ${PWD INVALID LENGTH}    
  abCD567890123 ${PWD INVALID LENGTH}    
 
 
3. 使用关键字
 
Keyword  Action Argument   Argument Argument 
Clear Login Database  Remove file ${DATABASE FILE}     
Create Valid User [Arguments] ${username} ${password}  #定义关键字可以理解为定义函数实现
  Create user ${username} ${password} #Create User为LoginLibrary.py中定义的关键字,robot Framework会忽略下划线
  Status should be SUCCESS   #同上
Login [Arguments]   ${username} ${password}    
  Attempt to login with credentials ${username} ${password}   #同上
  Status Should Be   Logged In    
Creating user with invalid password  [Arguments] ${password} ${error}  
  Create user username ${password}  
  Status should be   Creating user failed: ${error}     
         
4. 使用变量 

Variable  Value
${DATABASE FILE} ${TEMPDIR}${/}robotframework-quickstart-db.txt
${PWD INVALID LENGTH} Password must be 7-12 characters long
   
 
5. 自定义关键字返回值
用户关键字也可以返回值,返回值使用[Return]定义。该值可以赋给测试用例中的变量或其他关键字。
 Test Case Action  Argument  Argument 
 One return value ${return} =  Return one value  
  Should Be Equal  ${return} one 
 Two return values  @{list}= Return two values   
   ${first} ${second} = Return two values 
       
 
 Keyword  Action Argument  Argument
 Return one value  [Return] one   
 Return two values  [Return] one  two
 
五. 测试用例的执行
测试用例完成后,就该是执行了,这非常简单:打开命令窗口,进入测试集所在目录,然后输入命令:pybot XXX.html即可。
当目录下有多个测试文件时,直接输入测试文件所在的目录名,则所有测试文件都会执行,且每个测试文件作为一个测试集,这在测试报告中有所体现。
 
六、测试库
 1. 八个标准库,可以直接导入使用。
2. 扩展库,需要下载安装后才能使用。
3. 用户自定义的Test Library库文件
这个库文件是将待测程序的所有接口函数提出来,使用python写的一个Library文件。需要一定的编程基础才能很好的写出测试所需的接口库函数。
 
七、其它
 在一个测试集中,可能包含多个测试文件,为重用关键字及变量,可以将关键字及变量单独生成文件,然后在测试文件的setting中导入资源文件即可。
 
 Setting  Value
 Resource Variable.html
 Resource  keyword.html

转:http://www.360doc.com/content/11/1230/10/54470_176015885.shtml

Robot Framework测试框架学习笔记的更多相关文章

  1. Robot Framework测试框架用例脚本设计方法

    Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动 ...

  2. 用 Python 写 Robot Framework 测试

    Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库. 1.你懂 Python 语言. 2.又想使用 Robot Framework 测试框架 ...

  3. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  4. 三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。

    序 关于自动化测试的工具和框架其实有很多.自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不 ...

  5. JavaSE中线程与并行API框架学习笔记1——线程是什么?

    前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...

  6. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  7. TensorFlow机器学习框架-学习笔记-001

    # TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...

  8. Robot FrameWork测试案例

    Robot FrameWork是一个自动测试框架,可到官网查看详细介绍. 安装 Robot Framework 本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来 ...

  9. Robot Framework自动化框架搭建的步骤

    我把自己之前搭建Robot Framework自动化测试框架的步骤整理了一下,感兴趣的同学可以参考一下.   Robot Framework自动化测试框架+ 可视化编辑工具RIDE+Selenium2 ...

随机推荐

  1. Python-操作Memcache、Redis、RabbitMQ、

    Memcache 简述: Memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要 ...

  2. iOS中使用RSA对数据进行加密解密

    RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...

  3. 【转】MySQL 性能优化的最佳20多条经验分享

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.   当我们去设计数据库表结构,对操 ...

  4. C# LUA 闭包

    许多语言中有闭包的概念,C#的闭包以lambda表达式表现,可以实现与LUA完全一样的效果. //LUA------------------------------------------------ ...

  5. python学习三

    输入与输出 print()在括号中加上字符串,就可以向屏幕上输出指定的文字. >>>print('hello world')hello world print()函数也可以接受多个字 ...

  6. .NET性能调优之一:ANTS Performance Profiler的使用

    .NET性能调优系列文章 系列文章索引 .NET性能调优之一:ANTS Performance Profiler的使用 .NET性能调优之二:使用Visual Studio进行代码度量 .NET性能调 ...

  7. 泛型委托 Predicate/Func/Action

    Predicate 泛型委托  表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素.看看下面它的定义: // Summar ...

  8. Quartz.net打造信息抽取器

    由于最近的一个项目需要定时抽取特定XML信息,然后保存到数据库,最后通过WebApi把手机端要使用的方法给暴露出来,所以去研究了一下Quartz.net.由于项目很小,我没用到Autofac,Repo ...

  9. 2015年新版C#从入门到精通(第2版)视频教学录像【无水印版】

    <c#从入门到精通(第2版)>以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了c#的相关知识和实战技能.<c#从入门到精通(第2版)>第1篇[c#语言基础]主要讲解c# ...

  10. ActionBar在Android2.x的实现,类似新版微信界面。

    ActionBar完美兼容Android4.x的机型,虽然现在Android2.x的系统越来越少,还有有一部分人使用的仍是2.x的系统,所以我们还得考虑着兼容性问题. 对比图: Test例子与微信的对 ...