zoukankan      html  css  js  c++  java
  • 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 secondsnewline=LFprompt=Noneloglevel=INFOterm_type=vt100width=80,height=24path_separator=/encoding=UTF-8.其中,newline=LF/CRLF( , )

    更改默认设置:

    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:TRACEDEBUGINFO 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]

    Other:

    1.For executing commands on the remote machine, there are two possibilities:

    • Execute Command and Start Command. The command is executed in a new shell on the remote machine, which means that possible changes to the environment (e.g. changing working directory, setting environment variables, etc.) are not visible to the subsequent keywords.

    2.SSHLibrary 官方文档:http://robotframework.org/SSHLibrary/SSHLibrary.html#Importing



  • 相关阅读:
    Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解
    Spring Boot 2.x基础教程:JSR-303实现请求参数校验
    Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档
    Spring Boot 2.x基础教程:构建RESTful API与单元测试
    IntelliJ中Git突然不能用,报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
    OpenWrite插件上架Google商店,插件安装更加容易!用户安全更有保障!
    为什么我建议大家将原创文章分发到多个平台?
    Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」
    程序员干私活搞副业,个税问题搞清楚没?今年到手的2000明年还是2000吗?
    RabbitMQ延迟消息的延迟极限是多少?
  • 原文地址:https://www.cnblogs.com/ting152/p/12516861.html
Copyright © 2011-2022 走看看