robot framework 入门
分类: LINUX
当我的程序比较少的时候,我可以手工的执行测试程序,察看结果。但是如果的程序多了之后,我不能天天手工去执行,这样的话,太费时了,而且,通过不通过还要自己去看 $?. 有人说,你写好的程序,不改动,为啥天天测一遍。实际情况是,有时候我会改这些程序,对外接口不变,内部实现有时候会改动,我希望有一个工具能够每天帮我测试一遍所有的代码,把最终的结果用更友好,更可读的方式呈现出来。
我的同事Kai,做了很多这方面的学习研究工作,我向他讨教了一些经验,昨天晚上和今天早上自己学习了下,给自己搭建了一个robot framework的框架。很多东西我也不懂,现在还是入门级别的水平,想深入学习的筒子请移步robot framework,去获取更过详细的信息。
第一步: 安装python
- root@manu:~/code/c/self/hello# python -V
- Python 2.7.3
我就不多说了,如果装不上python,后面内容也不需要看了。
第二步: 安装 robotframework
下载地址:http://code.google.com/p/robotframework/downloads/detail?name=robotframework-2.7.5.tar.gz
- tar zxvf robotframework-2.7.5.tar.gz
- cd robotframework-2.7.5
- python setup.py install
第三步:安装robotframework-seleniumlibrary
这步骤应该是可选的,这是一个web test library。当时我同事建议我装上我就装上了,具体作用我自己也不明了。
下载地址:http://code.google.com/p/robotframework-seleniumlibrary/downloads/list
- tar -zxvf robotframework-seleniumlibrary-2.9.1.tar.gz
- cd robotframework-seleniumlibrary-2.9.1
- python setup.py install
整个robot framework的框架搭建是非常简单的,这也是这个东西的优势。如果巨复杂,谁愿意用啊?
下面是关键部分,我用我前段时间写的红黑树的测试代码作为例子。我的红黑树有测试代码:这些代码不需要看,我测试了创建,插入,删除这几个接口。这个测试程序会编译成可执行程序,如果测试通过,返回0,如果出现异常,或者返回值是其他值,或者干脆就段错误了,也会被robot framework捕获到,最终生成结果报告。
下面开始详细步骤:
1 建立一个auto_test的目录,将来我们的测试脚本都会放在这个下面。
- mkdir ~/auto_test
2 为rb_tree 这个程序建立一个测试代码坐在的目录
- cd ~/auto_test
- mkdir rb_tree
3 写测试脚本:
- root@manu:~/auto_test/rbtree/library# cd ..
- root@manu:~/auto_test/rbtree# ll
- 总用量 16
- drwxr-xr-x 3 root root 4096 12月 23 13:48 ./
- drwxr-xr-x 4 manu root 4096 12月 23 13:15 ../
- drwxr-xr-x 2 root root 4096 12月 23 13:49 library/
- -rw-r--r-- 1 root root 481 12月 23 13:48 test_rbtree.txt
- root@manu:~/auto_test/rbtree# ll library/
- 总用量 12
- drwxr-xr-x 2 root root 4096 12月 23 13:49 ./
- drwxr-xr-x 3 root root 4096 12月 23 13:48 ../
- -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。
- root@manu:~/auto_test/rbtree# cat library/test_rbtree.py
- import os
- def test_rbtree():
- 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 入门的更多相关文章
- Robot Framework 入门教程总结
Robot Framework 作为一款通用测试框架,可加载多种测试库.驱动多种测试工具,并可对各种自定义脚本进行集成.对于Robot Framework,我准备将其分为 入门--Robot Fram ...
- Robot Framework入门学习1 安装部署详解
安装注意: 目前Robot framework-ride不支持python3,安装时请下载python2.7版本. Robot Framework安装时出现了一点小问题,网上没有找到直接的介绍,现将安 ...
- 1. Robot Framework入门
RF定义: 通用型的 自动测试框架, 绝大部分的软件的的自动化系统都可以采用它. 特点: 测试数据文件(Test Data)对应一个个的测试用例.测试数据文件里面使用的功能小模块叫关键字,由测试库(T ...
- Robot Framework入门学习2 创建第一个测试用例
本文章部分内容引自以下网址,感谢作者的辛苦分享 http://www.cnblogs.com/fnng/p/3871712.html http://blog.csdn.net/tulituqi/art ...
- 2小时入门Robot Framework
1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 ...
- 【转】Robot Framework 快速入门
目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...
- Robot Framework 快速入门
Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键 ...
- Robot Framework(一)入门
1.1简介 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD).它可用于测试分布式异构应用程序,其中验证需要涉 ...
- Robot Framework 快速入门_中文版
目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...
随机推荐
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
O(n)的算法就不说了,这题主要考查的是 O(logn)的算法. 有序数组easy想到使用二分查找解决.这题就是在二分基础上做一些调整.数组仅仅有一次翻转,能够知道原有序递增数组被分成两部分,这俩部分 ...
- java notify notifyAll
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法. void notify(): 唤醒一个正在等待该对象的线程.void notifyAll(): 唤醒所 ...
- Zookeeper 简单操作
1. 连接到zookeeper服务 [java2000_wl@localhost zookeeper-3]$ bin/zkCli.sh -server 127.0.0.1:2181 也可以连接远端的 ...
- 编程之美 之 让CPU占用率听你指挥
昨天在bbs上淘到了这本编程之美.顺手刷了第一章,很有意思.第一章的要求是要控制CPU曲线,绘制出对应的形状. 拿到这个问题,我的第一反应是, 是不是有这么一个API,能在任务管理器上的对应区域直接绘 ...
- mina客户端与服务端通信的易错点
使用mina进行项目开发时,如果客户端与服务端不在同一个项目下,需要关注一下两点: 第一.服务端与客户端的编码解码器一致 第二.过程中所用到的实体类的包名需要一致
- mysql查看所有存储过程,函数,视图,触发器,表,分页
查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' ...
- HTTP错误 404.17 - Not Found" IIS 7.5
出现这种情况的原因通常是因为先安装了Framework,后安装的IIS: 运行cmd,输入: C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_ ...
- java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)
public class txs { static void leftbit(){ int i; //整型长度为32位 ...
- C项目实践--图书管理系统(2)
前面在<<C项目实践-图书管理系统(1)>>中把系统中的三大功能模块中可能涉及到的常量,结构体及相关函数进行了声明定义,下来就来实现它们. 执行系统首先从登录到系统开始,所以首 ...
- PP-判断生产订单状态(关闭)
方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...