Robot FrameWork安装以及一个Demo

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, 可以看到,我们这个测试用例成功啦~~~


参考

[1] Robot FrameworkUser Guide

http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html?r=2.8.1

[2] Robot FrameworkBuildIn Doc

http://robotframework.googlecode.com/hg/doc/libraries/BuiltIn.html?r=2.8.1

[3] SSH Library Doc

https://robotframework-sshlibrary.googlecode.com/git-history/1.1/doc/SSHLibrary.html


RobotFramework中 中SSHLibrary学习与总结 学习与总结 ⼀、安装SSHLibrary ⼆.关键字 1.与连接相关的 Open Connection Get Connection Get Connections Switch Connection Close Connection Close All Connections Login Login With Public Key Set Client Configuration Set Default Configuration Enable Ssh Logging 2.与⽂件/⽬录相关的 2.1 File Should Exist , File Should Not Exist, Directory Should Exist , Directory Should Not Exist 2.2 List Directory, List Files In Directory , List Directories In Directory 2.3 Put Directory ,Get Directory,Put File,Get File 3.与读写执⾏相关的 Write Write Bare Write Until Expected Output Read Read Until Read Until Prompt Read Until Regexp Execute Command Start Command Read Command Output ⼀、安装 ⼀、安装SSHLibrary 安装命令:pip install robotframework-sshlibrary ⼆ ⼆.关键字 关键字 1.与连接相关的 与连接相关的 Open Connection ⽤法: [ host " alias=None " port=22 " timeout=None " newline=None " prompt=None " term_type=None " width=None " height=None " path_separator=None " encoding=None ] 默认设置:timeout=3 seconds, newline=LF, prompt=None, loglevel=INFO, term_type=vt100, width=80,height=24, path_separator=/, encoding=UTF-8.其 中,newline=LF/CRLF(\n,\r\n) 更改默认设置: 1.导⼊库时: Library SSHLibrary 10 seconds prompt=$ 2.使⽤ Set Client Configuration/Set Default Configuration 3.调⽤Open Connection时: 结果: ${con1} =index=1 path_separator=/ prompt=# width=80 newline= height=24 encoding=UTF-8 alias=backend host=10.69.140.112 timeout=3 seconds term_type=vt100 port=2222 Get Connection ⽤法:[ index_or_alias=None " index=False " host=False " alias=False " port=False " timeout=False " newline=False " prompt=False " term_type=False " width=False " height=False " encoding=False ] 1.获取connection的信息,如果调⽤时没有加 index_or_alias,返回当前的conection信息。 2.获取connection的特定属性信息,后边加属性名=⾮false/False字符串。 结果: ${con1} =index=1 path_separator=/ prompt=# width=80 newline= height=24 encoding=UTF-8 alias=backend host=10.69.140.112 timeout=3 seconds term_type=vt100 port=2222 ${con2} = (2222, 3.0) Get Connections ⽤法:没有输⼊值,获取所有打开的connection的信息 结果: ${con1} = index=1 path_separator=/ prompt=$ width
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值