SSHLibrary

一、安装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=80 newline= height=24 encoding=UTF-8 alias=None host=10.69.144.140 timeout=3 seconds term_type=vt100 port=2222

${con2} = index=2 path_separator=/ prompt=# width=80 newline= height=24 encoding=UTF-8 alias=None host=10.69.144.139 timeout=3 seconds term_type=vt100 port=2222

Switch  Connection

用法:[ index_or_alias ],跳转到另一个active的connection。

Close Connection

用法:没有输入值,关闭当前的connection

Close All Connections

用法:没有输入值,关闭所有打开的connection

Login

用法:[ username | password | delay=0.5 seconds ]

Login With Public Key

用法:[ username | keyfile | password= | delay=0.5 seconds ]

Set Client Configuration

用法:[ timeout=None | newline=None | prompt=None | term_type=None | width=None | height=None | path_separator=None | encoding=None ],设置当前connection的配置

Set Default  Configuration

用法:[ timeout=None | newline=None | prompt=None | term_type=None | width=None | height=None | path_separator=None | encoding=None ],设置默认的配置,但不影响已经open的connection。

结果:

20180418 17:11:20.688 : INFO : 10.0

20180418 17:11:20.689 : INFO : 5.0

20180418 17:11:20.689 : INFO : 3.0

Enable Ssh Logging

用法:[ logfile ],将SSH协议的日志输出到本地给定的“日志文件”中。Enables logging of SSH protocol output to given `logfile`. 

note:

    1.文件存在时,文件内容被重写。

    2.没有指定路径时,该文件在RF文件夹中。

2.与文件/目录相关的

2.1 File Should Exist ,      File Should Not Exist,     Directory Should Exist ,    Directory Should Not Exist

用法:[ path ] ,无返回值

2.2 List Directory,   List Files In Directory ,    List Directories In Directory

 用法: [ path | pattern=None | absolute=False ],返回值为list。其中absolute=true ,返回绝对路径。

结果:

        20180417 14:38:58.281 :  INFO : ${dir} = [u'cmd', u'service']

        20180417 14:38:58.286 : INFO : ${dir2} = [u'/opt/ygomi/roadDB/jar/cmd', u'/opt/ygomi/roadDB/jar/service']

        20180417 14:38:58.290 : INFO : ${dir3} = [u'service']

2.3 Put Directory ,Get Directory,Put File,Get File

Put File

用法:[ source | destination=. | mode=0744 | newline= ],无返回值,将文件从本地上传到远程机器上。

`newline` can be used to force the line break characters that are written to the remote files. Valid values are `LF` and `CRLF`. 

Put Directory

用法:[ source | destination=. | mode=0744 | newline= | recursive=False ],将目录由本地上传到远程机器上。如果recursive=True,将子目录中文件也上传至远程机器上。

Get File

用法:[ source | destination=. ],从远程机器中下载文件

Get Directory

用法:[ source | destination=. | recursive=False ],从远程机器中下载目录。如果recursive=True,将子目录中文件也下载至本地上。

其中:/data 是docker的工作目录,/home/test 是本机目录

3.与读写执行相关的

Write

用法:[ text | loglevel=None ],将text写入到远端机器上并回车执行,返回值为text+换行符

loglevel:TRACE, DEBUG, INFO and WARN

Write Bare

用法:[ text ],将text写入到远端机器上,没有执行没有返回值。

结果:

关键字write 有返回值,执行命令后,用read读取终端输出时不会读取到输入的text;

关键字write bare没有返回值,执行命令后,用read读取终端输出时会读取到输入的text;

Write Until Expected Output

用法:[ text | expected | timeout | retry_interval | loglevel=None ],没有返回值,输入的 text 在设定的timeout内每隔retry_interval重复执行,直到终端输出的结果中包含期望的输出expected。

Read

用法: [ loglevel=None | delay=None ] ,读取终端输出

Read Until

用法:[ expected | loglevel=None ]

Read Until Prompt

用法:[ loglevel=None ]

Read Until Regexp

用法:[ regexp | loglevel=None ]

结果:

Execute Command

用法:[ command | return_stdout=True | return_stderr=False | return_rc=False ]

在远端机器上执行命令,并返回执行结果,需要等待command执行完才返回结果。

Start Command

用法:[command]

没有返回值,不等待command执行完成就返回。

Read Command Output

用法:[ return_stdout=True | return_stderr=False | return_rc=False ]

与Start Command配合使用,执行Read Command Output前至少要先执行一次Start Command关键字,返回最近一次start command的返回值。

结果:

${var} = [u'/home/roaddb', u'', 0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值