Robot FrameWork是一个自动测试框架,可到官网查看详细介绍。

安装 Robot Framework

本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来按顺序安装以下的软件/包。

Software

Version

Post-steps

Note

Python

python-2.7.6

Set ENV Var to PATH:

C:\Python27

C:\Python27\Scripts

 

Robot Framework

robotframework-2.8.1.win32

   

wxPython

wxPython2.8-win32-unicode-2.8.12.1-py27

   

RIDE

robotframework-ride-1.2.2.win32

 

Installation via CLI with Administration Privilege

安装RIDE之后, 桌面快捷方式可能链接文件有问题,可以修改其目标为: C:\Python27\pythonw.exe-c "from robotide import main; main()"

Demo: Scan Spyware via manual scan of X-Product

这里做个背景介绍:X-Product用于保护Linux服务器文件系统之上的文件。Manual Scan是其中的一个手动扫描文件的功能,将扫描出的病毒进行隔离(或者清除等),并且记录log。

以下Demo中Robot Framework安装在Win7之上,而X-Product安装在另一台Linux服务器上。

1. 测试流程

Robot Framework: 该框架用于管理测试用例,并且能够很好的生成测试报告。

Keyword: 在Robot Framework中,关键字有点像其他语言中的函数。同样关键字也具有三个部分:Keyword Name, Arguments, and Return values. 在Robot Framework中写测试用例需要符合其表格语法的规范。

SSH Library: 这是一个SSH/Sftp的库,可以用来和远程其他的机器进行通信。

2. 测试逻辑

我们目标去测试X-Product的manual Scan功能能否发现一个spyware的测试样本。测试逻辑如下图所示:

3. Robot Framework实战

首先,SSH Library需要被安装. 如下表所示,按顺序安装以下的包. 安装完成之后可以使用命令 python -c "import SSHLibrary” 查看是否安装成功

Package

Version

pycrypto

pycrypto-2.6.win32-py2.7

paramiko

paramiko-1.7.3-ctypes.win32

SSH Library

robotframework-sshlibrary-1.1.win32

然后, 如下图所示,工程 HelloRobot 被创建. HelloWorld 测试套被创建,通常一个测试套里面包含一个功能测试的测试用例集合.ManualScanForSpyware 是本次测试的一个测试用例.

接着, 如下图所示,在写测试用例之前,我们首先导入 SSHLibrary 和 User keyword resource. User keyword resource “setupkeyword.txt” 是我们自己所写的高级关键字.

同时 Scalar Variables 被创建,如下图所示:

如下图所示,之前提到的User keywordresource 被创建. 高级关键字 SetupForMS 连接到需要测试的SPLX服务器,发送一个shell脚本 “setup.sh” ,然后发送一个命令去执行“setup.sh”.

再接着, 如下图所示, Setup 负责在执行测试用例之前的清理工作. 这里高级关键字 SetupForMS 来完成测试用例执行前的清理工作. 测试步骤如下:

[Step1].   连接到服务器

[Step2].   登陆到服务器

[Step3].    发送病毒样本“spyware.exe”到测试服务器

[Step4].   发送测试脚本“testscript.sh”到测试服务器

[Step5].   发送命令去执行脚本“testscript.sh

[Step6].   从输出中获取测试结果

[Step7].   关闭和服务器之间的连接

[Step8].   对测试结果打印Log

[Step9].   查看是否测试成功

最后, 我们来执行这个测试用例. 如下图所示, 我们可以从RIDE中直接看到测试结果和测试的log. 我们也可以通过点击图中的按钮Report/Log,来查看HTML形式的测试报告. Ok, 可以看到,我们这个测试用例成功啦~~~

Robot FrameWork测试案例的更多相关文章

  1. 用 Python 写 Robot Framework 测试

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

  2. Robot Framework测试框架学习笔记

    一.Robot Framework框架简介         Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...

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

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

  4. robot framework测试驱动无法定位页面元素

    robot framework错误提示: [ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchW ...

  5. Jenkins上配置Robot Framework测试邮件通知模板

    邮件效果 测试成功如下所示: jenkins_robot_success 测试失败如下所示: jenkins_robot_failure 通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统 ...

  6. robot framework 测试/预发/线上环境快捷切换

    通常情况下布署的三套环境:测试.预发及线上环境.调试或者辅助验证测试时,切环境改变量甚是麻烦.这些变量包括但不限于:一些url信息,数据库信息,预置用户信息等. 切换环境方法一:使用变量文件,通过判断 ...

  7. 最新 robot framework安装

    相信大家对robot framework并不陌生,它是一个基于Python语言,用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架=,提供了一套特定的语法,并且有非常丰富的测试库. Pyt ...

  8. Robot Framework+AutoItLibrary使用

    目的:用Robot Framework测试win7桌面程序   因为安装完了才补的记录,估计有错漏:(     步骤: 1. 尝试pip install AutoItLibrary 失败 2. 下载A ...

  9. Robot Framework(十八) 支持工具

    5支持工具 5.1库文档工具(libdoc) libdoc是一种用于为HTML和XML格式的测试库和资源文件生成关键字文档的工具.前一种格式适用于人类,后者适用于RIDE和其他工具.Libdoc也没有 ...

随机推荐

  1. nginx日志增加cookie信息

    一.获取全部cookie信息 这个比较方便,直接在nginx.conf文件中添加$http_cookie log_format main '[$time_local] - $remote_addr:$ ...

  2. duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性

    转载请说明原出处,谢谢~~: 今天有朋友反映CTextUI控件无法设置宽度,于是修复了这个bug,顺便给Text控件增加了一个自动计算宽度的属性,描述如下 <Attribute name=&qu ...

  3. Java基础之equals() 和 hashCode()

    equals()是Object中的一个方法: public boolean equals(Object obj) { return (this == obj); } 在Object中equals()方 ...

  4. windows7中用vitualbox安装OS X 10.11 El Capitan 及 Xcode 7.0--转载

    在 Win 7或8 下使用 VirtualBOX 虚拟机安装 OS X 10.11 El Capitan 及 Xcode 7.0 来源:http://bbs.feng.com/read-htm-tid ...

  5. 前端PHP入门-023-重点日期函数之程序执行时间检测

    我们有的时经常需要做程序的执行时间执行效率判断. 实现的思路如下: <?php //记录开始时间 //记录结整时 // 开始时间 减去(-) 结束时间 得到程序的运行时间 ?> 可是大家不 ...

  6. 【Java】将字符串转化为整数

    前几天面试遇到这个问题:在Java中如何将字符串转化为整数,当时too young too naive,随便回答了一下.今天跑去看Java源码中paresInt函数的写法,Oh my god!其实不看 ...

  7. Linux改变用户shell的类型

    命令: 改变usr01的类型 # usermod -s /bin/csh usr01

  8. 拖放API中的drag和drop实战

    原文地址:→传送门 写在前面 在HTML5之前,实现拖放功能需要借助mousedown/mousemove/mouseover/mouseout/mouseup等鼠标事件来完成,HTML5中拖放API ...

  9. LOW逼三人组(二)----选择排序算法

    选择排序思路: 算法程序: def cal_time(func): # 装饰器 ,用来检测算法所执行的时间 def wrapper(*args,**kwargs): t1=time.time() re ...

  10. vista风格的cms企业html后台管理系统模板——后台

    链接:http://pan.baidu.com/s/1c1Cv99e 密码:20yz