obot framework 入门 2012-12-23 12:47:16

分类: 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. cd robotframework-2.7.5
  3. 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. cd robotframework-seleniumlibrary-2.9.1
  3. python setup.py install

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

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

下面开始详细步骤:

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:48 test_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:38 test_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. import os
  3. def test_rbtree():
  4. 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的时间还短,很多东西不懂,需要在实践中学习。 我先用起来,慢慢提高。希望路过的高手可以指点下。

最后,吃水不忘掘井人,膜拜一下大神Pekka。 Pekka是robotframework的创始人和核心开发者,他的硕士论文《Data-Driven and Keyword-Driven Test Automation Frameworks》就是robotframework的理论基础,其他主要开发者请查看http://robotframework.org官方主页的人物名单,或者他们博客主阵地上列出的贡献者名单。

光荣属于前辈。

robot framework 入门的更多相关文章

  1. Robot Framework 入门教程总结

    Robot Framework 作为一款通用测试框架,可加载多种测试库.驱动多种测试工具,并可对各种自定义脚本进行集成.对于Robot Framework,我准备将其分为 入门--Robot Fram ...

  2. Robot Framework入门学习1 安装部署详解

    安装注意: 目前Robot framework-ride不支持python3,安装时请下载python2.7版本. Robot Framework安装时出现了一点小问题,网上没有找到直接的介绍,现将安 ...

  3. 1. Robot Framework入门

    RF定义: 通用型的 自动测试框架, 绝大部分的软件的的自动化系统都可以采用它. 特点: 测试数据文件(Test Data)对应一个个的测试用例.测试数据文件里面使用的功能小模块叫关键字,由测试库(T ...

  4. Robot Framework入门学习2 创建第一个测试用例

    本文章部分内容引自以下网址,感谢作者的辛苦分享 http://www.cnblogs.com/fnng/p/3871712.html http://blog.csdn.net/tulituqi/art ...

  5. 2小时入门Robot Framework

    1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 ...

  6. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  7. Robot Framework 快速入门

    Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键 ...

  8. Robot Framework(一)入门

    1.1简介 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD).它可用于测试分布式异构应用程序,其中验证需要涉 ...

  9. Robot Framework 快速入门_中文版

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

随机推荐

  1. 容器使用笔记(List篇)

    上一篇博客介绍了Dictionary,这篇博客介绍List的相关内容. C#中要存储一组数据.我们会想到数组Array,ArrayList,List这三个对象,当中,数组是最早出现的,我们就从数组開始 ...

  2. Angular2.x-主/细节组件

    此刻,HeroesComponent显示heroes列表和所选heroes的详细信息. 随着应用程序的增长保持一个组件中的所有功能将不可维护.您需要将大型组件分成更小的子组件,每个组件都专注于特定的任 ...

  3. python菜鸟日记1

    1. 在__init__(self,...)初始化函数中.定义对象的属性,这些属性不用所有写在括号里,括号里的表示定义的时候须要赋初始值的一些属性,而其它不用初始值的属性.能够 直接卸载代码块中,se ...

  4. 使用JS对select标签进行联动选择

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. Camera 模组

    http://wenku.baidu.com/view/89d8c21014791711cc7917d5.html http://wenku.baidu.com/view/0cec54d5c1c708 ...

  6. mysql字段去重方式

    一直找不出某个字段去重的前提下,还能够显示其它字段的数据 以下是解决方法: SELECT *, COUNT(DISTINCT( province)) FROM area_info WHERE type ...

  7. 2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承

    一:定义类   二:实例化对象 //定义类 class Ren { var $name; var $sex; var $age; function Say() { echo "{$this- ...

  8. while语句字符串的基本操作

    1,编码:对现在通用文字编码成计算机文字,便于储存,传递,交流. 最早的计算机编码是ACSII美国人创建的,包含英文字母,数字,以及特殊符号.总共是128个码位:2**7,因为计算机的底层只能识别:& ...

  9. HBase在大搜车金融业务中的应用实践

    摘要: 2017云栖大会HBase专场,大搜车高级数据架构师申玉宝带来HBase在大搜车金融业务中的应用实践.本文主要从数据大屏开始谈起,进而分享了GPS风控实践,包括架构.聚集分析等,最后还分享了流 ...

  10. Go语言mgo

    本文重点介绍mgo使用,仅简单介绍mongodb. mongodb特性   mongdb简单介绍 注意: 上图已经告知我们mongo不支持事务,在开发项目应用时,想要保证数据的完整性请考虑关系型数据库 ...