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. vue-router再学习

    vue路由: 1:动态路由配置 import Vue from 'vue' import Router from 'vue-router' import Index from '@/view/inde ...

  2. dotnet 获取程序所在路径的方法

    在 dotnet 有很多方法可以获取当前程序所在的路径,但是这些方法获取到的路径有一点不相同,特别是在工作路径不是当前的程序所在的路径的时候 通过下面几个方法都可以拿到程序所在的文件夹或程序文件 Ap ...

  3. 2018-2-13-wpf-GifBitmapDecoder-解析-gif-格式

    title author date CreateTime categories wpf GifBitmapDecoder 解析 gif 格式 lindexi 2018-2-13 17:23:3 +08 ...

  4. Perl 的内置变量$|

    $|是perl的内置变量,默认情况下是0,如果设置为非0的话,表示当前的输出不经过缓存立刻输出.相当于c语言的fflush()函数,立即刷新缓冲区. 比如你print或者write一个文件,实际是需要 ...

  5. JVM内存结构探秘及编码实战

    了解JVM内存结构的目的 在Java的开发过程中,因为有JVM自动内存管理机制,不再需要像在C.C++开发那样手动释放对象的内存空间,不容易出现内存泄漏和内存溢出的问题.但是,正是由于把内存管理的权利 ...

  6. CodeForces 796D

    不能一个一个bfs,要一起bfs #include<iostream> #include<vector> #include<cstdio> #include< ...

  7. DEVOPS技术实践_08:声明式管道语法

    简介 前面简单的做了管道的实验,看了一下的它的效果 声明式管道是Groovy语法中的一个更简单和结构化的语法.下面主要学习明式管道语法. 一 声明式管道的基本结构 以上节的代码为例 node { de ...

  8. 006 管理Ceph的RBD块设备

    一, Ceph RBD的特性 支持完整和增量的快照 自动精简配置 写时复制克隆 动态调整大小 二.RBD基本应用 2.1 创建RBD池 [root@ceph2 ceph]# ceph osd pool ...

  9. AndroidStudio插件大全

    Android-Studio-Plugins 原文地址:https://github.com/itgoyo/Android-Studio-Plugins 欢迎star~~~ Android-Studi ...

  10. 20191024-3 互评Alpha阶段作品——构建之法组

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评 ...