bot Framework是一个强大的自动化测试框架,依靠社区力量编写的Test Library为它提供了非常强的扩展性。下面我将介绍的就是如何使用第三方提供的扩展测试库(Test Library)来远程登录Unix,并在上面做常见操作。

 
  • 环境准备(W32环境下):
1.首先我们得拥有Robot Framework的运行环境。
 
  a.必须安装python,因为Robot Framework是用python实现的,目前Robot Framework只支持Python2.X版本。
 
  b.安装Robot Framework,目前最新版本为2.6.1。安装说明在项目的主页中给了详细说明,可见下面链接
  ,这里就不累述了。   http://code.google.com/p/robotframework/downloads/list
 
 
2.要实现RobotFramework对Unix的访问,我们需要使用到它的第三方扩展库 SSH Library。
 
如果你动手能力强,E文又好,可以跳过对SSH Library安装的介绍,直接看他的英文安装说明(写的有点儿简单)。
 
安装前准备:
----------------------------------------------------------------------------
Pybot版本:
 
  a.在安装SSHLibrary以前,我们需要安装它的支撑库Paramiko
  实际上真正实现访问Unix功能的软件是paramiko,SSHLibrary是按照Robot Framework的扩展测试库标准对     Paramiko进行的封装。
 
  Paramiko的首页 http://www.lag.net/paramiko/
  我们在页面的下载部分下载 paramiko-1.7.7.1.zip   解压后执行: setup.py install    安装。
  注意要如果有多个python版本,必须安装到与RobotFramwork一致的版本上。
 
  windows下的多版本管理可以参照下贴:
 
 
  b.paramiko依赖另一个库,这个库提供SSH所需的数字签名算法,这个库是    PyCrypto,需要单独   安装。pyCrypto也是python写的,可以用 setup.py install 命令安装。
---------------------------------------------------------------------------------------------------------------

Jybot版本:

点击 Trilead SSH for Java  下载。

加入你环境变量中的 ”Classpath “ 项中去。这样Jython才能识别它。

---------------------------------------------------------------------------------------------------------

安装准备完毕。

 
  完成安装准备工作,我们就可以安装SSH LIbrary了,它的下载地址如下:
  选择SSHLibrary-1.0.win32.exe  这个安装文件下载并安装。安装很傻瓜,直接Next就行了。
  仍需要注意的是如果你安装了多个Python版本,必须选择你安装Robot Framework的对应Python版本.
 
3.使用Ride(选用):
Ride是一个robot framework 测试用例编写的一个集成工具,通过它我们可以非常方便的编辑测试用例。
Ride的首页:http://code.google.com/p/robotframework-ride/  大家自行安装,这里就不多说了。
 
  • 使用
SSHLibrary的使用方法,与其它Robot Framework下其它测试库使用的方法相同。都是通过编写测试用例来实现对被测程序的操作。SSHLibrary为我们隐去了很多细节(如使用DSA,RSA建立加密信道等),仅仅通过几个关键字就能实现与UNIX的交互了。
 
下面通过一个例子来说明SSHLibrary的用法。
 
例子实现的功能如下:
1.登录一台远程unix服务器。 10.2.2.233
2.执行bash
3.切换到 /userhome/lucas/config目录下
4.执行程序 testTux
5.在/userhome/lucas/log下取得日志文件 tux_log.001到本地目录d:\tux_log.001
6.退出登录。
 
 
编写脚本(推荐使用Ride,这样可以减少拼写错误,并且用例在Ride中显得更清晰) 红色字为注释:
Open Connection   10.2.2.233  #None  22
Set Timeout       0minutes 3 seconds
Set Prompt        None
Login             username    password
Write             bash
Read Until        >   INOF               使用了一个技巧,见到>就说明输出完了。
Write             cd  /userhome/lucas/config
Read Until        >   INFO
Write             testTux
Read Until        >   INFO
Get File          /userhome/lucas/log/tux_log.001     d:\tux_log.001    注意使用绝对路径
Close All Connections

保存为脚本  testSSH.txt

直接运行pybot  testSSH.txt
,十几秒钟后,测试报告和日志就生成了。我们可以通过查看他们来获知用例的运行

使用Robot Framework框架远程操作UNIX系统的更多相关文章

  1. Robot Framework常用的操作库列表

    标准库是Robot Framework可以直接导入使用的库,包含以下几类: Builtin:包含经常需要的关键字.自动导入无需import,因此总是可用的 Dialogs:提供了暂停测试执行和从用户的 ...

  2. Robot Framework:Excel操作

    robot framework 操作Excel需要安装库 ExcelLibrary pip install robotframework-ExcelLibrary 将ExcelLibrary 导入到r ...

  3. robot framework下载文件操作

    不同的浏览器点击[下载]按钮之后,需要点击保存,还是确定,或者直接默认直接下载都是不一样的 1.chrome:点击[下载]之后,会自动执行下载操作,直到下载结束 A)点击下载,等待下载结束(sleep ...

  4. Robot Framework——对时间操作的datetime库常用关键字

    1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3.对时间格式转化,获取时间戳 4.从完整时间中取指定年月日等 5.对时间类型进行格式化 6.获取当前时间或者指定时区时 ...

  5. Robot Framework:数据库操作

    robotframework 操作数据库,需要安装DatabaseLibrary库 pip install robotframework-databaselibrary Python操作不同的数据库, ...

  6. 虫师自动化测试robot Framework 框架的学习

    1.python关键字的定义 #coding=utf-8 def add(a,b): return a+b if __name__ == "__main__": c = add(4 ...

  7. 通过CMD远程操作Linux系统

    一.文件传输 方法:使用sftp连接方式,sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性 命令: //登入:sftp username@ip sftp ...

  8. robot framework框架selenium API

    RIDE面板认识 selenium API 关键字 语法 参数 备注 Open Browser url Chrome 用不同的浏览器打开url,需要下载不同的浏览器驱动,默认火狐 Close Brow ...

  9. 虫师自动化测试robot Framework 框架的学习2

    循环的使用 1.in range和in的区别 输出结果 如果把上面的换成in range 会报错 未被定义,说明in range 后面使用的数据类型有限制,对比下,可以看出,in 可用在列表类型数据类 ...

随机推荐

  1. Django入门9--Django shell

  2. linux版本依赖

    记住, 你的模块代码一定要为每个它要连接的内核版本重新编译 -- 至少, 在缺乏 modversions 时, 这里不涉及因为它们更多的是给内核发布制作者, 而不是开发者. 模块 是紧密结合到一个特殊 ...

  3. CF Round #580(div2)题解报告

    CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...

  4. 2018-2-13-WPF-异常-NativeWPFDLLLoader.LoadNativeWPFDLL

    title author date CreateTime categories WPF 异常 NativeWPFDLLLoader.LoadNativeWPFDLL lindexi 2018-2-13 ...

  5. <QluOJ2018NewCode>约数个数

    题目描述 p^q表示p的q次方,正整数M可以分解为M=(p1^a1)*(p2^a2)*(p3^a3)*……*(pn^an)的形式,其中p1,p2……pn为质数(大于1并且只能被1和自身整除的数叫做质数 ...

  6. 2018宁夏邀请赛 L Continuous Intervals(单调栈+线段树)

    2018宁夏邀请赛 L Continuous Intervals(单调栈+线段树) 传送门:https://nanti.jisuanke.com/t/41296 题意: 给一个数列A 问在数列A中有多 ...

  7. nginx负载均衡的几种模式

    nginx 的 upstream目前支持 4 种方式的分配 ).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. ).weight 指定轮询几率,we ...

  8. cisco网络设备IOS升级步骤

    step1:检查和备份================================================================4507R#write4507R#copy run ...

  9. 安卓APP动态调试(IDA实用攻略)

    转自:http://drops.wooyun.org/mobile/5942 0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域.越来越多的人甚至已经对这些APP应用产生了依赖 ...

  10. 洛谷$P3645\ [APIO2015]$雅加达的摩天楼 最短路

    正解:最短路 解题报告: 传送门$QwQ$ 考虑暴力连边,发现最多有$n^2$条边.于是考虑分块 对于长度$p_i$小于等于$\sqrt(n)$的边,建立子图$d=p_i$.说下关于子图$d$的定义? ...