用于SSH和SFTP的Robot Framework测试库
项目描述
简介
SSHLibrary 是一个用于 SSH 和 SFTP 的 Robot Framework 测试库。项目托管在 GitHub 上,可以从 PyPI 下载。
SSHLibrary 与操作系统无关,支持 Python 2.7 以及 Python 3.4 或更高版本。除了正常的 Python 解释器外,它还与 Jython 2.7 一起工作。
该库具有以下主要用途
在远程机器上执行命令,可以是阻塞或非阻塞行为。
在交互式外壳中写入和读取。
通过 SFTP 转移文件和目录。
确保文件和目录存在于远程机器上。
文档
有关可用的关键字和有关库的更多信息,请参阅 关键字文档。
有关使用 Robot Framework 测试库的详细信息,请参阅 Robot Framework 用户指南。
安装
推荐的安装方法是使用 pip
pip install --upgrade robotframework-sshlibrary
运行此命令将安装最新的 Robot Framework、paramiko 和 scp 版本。最低支持的 paramiko 版本是 1.15.3,最低支持的 scp 版本是 0.13.0。在首次安装库时可以省略 --upgrade 选项。
使用最新版本的 pip,可以直接从 GitHub 仓库安装。要从 master 分支安装最新源代码,请使用以下命令
pip install git+https://github.com/robotframework/SSHLibrary.git
或者,您可以从 PyPI 下载源代码包,解压它,然后根据您使用的是 Python 还是 Jython 使用以下方法之一进行安装
python setup.py install jython setup.py install
使用 pip 的好处是它会自动安装 SSHLibrary 在 Python 上所需的 scp、paramiko 和 Cryptography 模块(如果 paramiko 版本 < 2.0 则为 PyCrypto)。
在 Jython 上,SSHLibrary 需要 Trilead SSH JAR 发行版。您需要下载 Trilead SSH JAR 发行版 并将其添加到 CLASSPATH。
在 Windows 操作系统上,当使用 Python 版本 < 3.0 时,SSHLibrary 将需要 win_inet_pton。最低支持的 win_inet_pton 版本是 1.1.0。
为了创建 SSH 隧道,还需要 robotbackgroundlogger > 1.2。
Docker
当在容器(例如 Alpine Linux)中安装 SSHLibrary 时,还需要安装更多的依赖项:gcc、make、openssl-dev、musl-dev 和 libffi-dev。这些包可以使用以下方法安装
apk add gcc make openssl-dev musl-dev libffi-dev
用法
要在 Robot Framework 测试中使用 SSHLibrary,需要首先像其他库一样使用 Library 设置导入库。
在使用Robot Framework时,通常建议尽可能编写易于理解的测试。SSHLibrary提供的关键字相当底层,通常使用Robot Framework的更高级关键字来编写测试是一个好主意,这些高级关键字内部使用了SSHLibrary的关键字。以下示例说明了这一点,其中将SSHLibrary关键字如Open Connection和Login组合在一个更高级的关键字如Open Connection And Log In中。
*** Settings ***
Documentation This example demonstrates executing a command on a remote machine
... and getting its output.
...
... Notice how connections are handled as part of the suite setup and
... teardown. This saves some time when executing several test cases.
Library SSHLibrary
Suite Setup Open Connection And Log In
Suite Teardown Close All Connections
*** Variables ***
${HOST} localhost
${USERNAME} test
${PASSWORD} test
*** Test Cases ***
Execute Command And Verify Output
[Documentation] Execute Command can be used to run commands on the remote machine.
... The keyword returns the standard output by default.
${output}= Execute Command echo Hello SSHLibrary!
Should Be Equal ${output} Hello SSHLibrary!
*** Keywords ***
Open Connection And Log In
Open Connection ${HOST}
Login ${USERNAME} ${PASSWORD}
支持
如果提供的文档不够,还有各种支持论坛可供选择
robotframework-users 邮件列表
#sshlibrary和#sshlibrary-dev频道在Robot Framework Slack社区
SSHLibrary 问题跟踪器,用于报告错误和具体的增强请求
其他支持论坛,包括付费支持