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. P1095 水仙花数

    题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:"水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3 ...

  2. C# 如何写出一个不能被其他程序集继承的抽象类

    我需要限定某个抽象类只能在我程序集类实现,而不支持其他程序集实现,也就是我需要一个不能被继承的抽象类 在 C# 里面有抽象类和接口,这两个都是期望被继承才能被使用,而抽象类是可以做到只能在自己程序集和 ...

  3. dotnet 通过 WMI 获取系统安装的驱动

    本文告诉大家如何通过 WMI 获取用户已经安装的驱动程序 通过 Win32_SystemDriver 可以获取用户已经安装的驱动程序 var mc = "Win32_SystemDriver ...

  4. k8s的持久化存储

    本例使用nfs 创建pv [root@k8s-master data]# vi pv.yaml apiVersion: v1kind: PersistentVolumemetadata: name: ...

  5. Github Pages 无法调用 node_modules 文件夹的解决方案

    今天写一个demo,用npm安装的前端库,然后想在github的pages上展示出来 发布到github后,发现node_modules文件夹下的js无法调用 google解决方案:新增一个名字为.n ...

  6. There is already an open DataReader associated with this Connection which must be closed first EF

    废话不多说,直接 上图,及解决办法.不过问题还不是太清楚到底为什么会出现这个情况..........  

  7. RobotFramework+Appium 升级Appium v1.10.0后,执行click element时报错:InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for this session,解决办法

    报错信息如下: debug] [35m[XCUITest][39m Connection to WDA timed out[debug] [35m[XCUITest][39m Connection t ...

  8. dockerfile部署tomcat+jdk

    FROM centos: MAINTAINER www.ctnrs.com ENV VERSION= RUN yum install wget curl unzip iproute net-tools ...

  9. 从零开始のcocos2dx生活(二)Node

    节点 Node 文章目录 节点 Node 前言 变量初始化 创建一个节点对象 获取节点依赖的计数器 获取节点的描述(获取节点的Tag) 节点的局部层顺序值(LocalZOrder) 设置节点的Loca ...

  10. VS运行速度缓慢卡顿 2020年1月3日23:25:35

    Java中一个类文件对应一个类 C#中一个类文件中可以包含多个类 使用visual studio2017过程中,发现启动调试时,总是会很慢,结束调试也会很慢,在这里可以通过关闭掉IntelliTrac ...