Robot Framework中SSHLibrary 学习与总结
一、安装SSHLibrary
二.关键字
1.与连接相关的
- Open Connection
- Get Connection
- Get Connections
- Switch Connection
- Close Connection
- Close All Connections
- Login
- Login With Public Key
- Set Client Configuration
- Set Default Configuration
- Enable Ssh Logging
2.与文件/目录相关的
- 2.1 File Should Exist , File Should Not Exist, Directory Should Exist , Directory Should Not Exist
- 2.2 List Directory, List Files In Directory , List Directories In Directory
- 2.3 Put Directory ,Get Directory,Put File,Get File
3.与读写执行相关的
- Write
- Write Bare
- Write Until Expected Output
- Read
- Read Until
- Read Until Prompt
- Read Until Regexp
- Execute Command
- Start Command
- Read Command Output
一、安装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,将子目录中文件也下载至本地上。

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]
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.
- Write, Write Bare, Write Until Expected Output, Read, Read Until, Read Until Prompt and Read Until Regexp. These keywords operate in an interactive shell, which means that changes to the environment are visible to the subsequent keywords.
2.SSHLibrary 官方文档:http://robotframework.org/SSHLibrary/SSHLibrary.html#Importing
Robot Framework中SSHLibrary 学习与总结的更多相关文章
- Robot Framework中使用HttpLibrary教程and中文支持
Robot Framework中使用and转参数时,默认不支持中文模式,如图场景: 会出现这种错误 FAIL : UnicodeDecodeError: 'ascii' codec can't dec ...
- Robot Framework测试框架学习笔记
一.Robot Framework框架简介 Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...
- 虫师自动化测试robot Framework 框架的学习
1.python关键字的定义 #coding=utf-8 def add(a,b): return a+b if __name__ == "__main__": c = add(4 ...
- Robot Framework中DatabaseLibrary应用
DatabaseLibrary: 在RF的官网上,有DatabaseLibrary的下载链接,DatabaseLibrary有2个版本,Python和Java版.本人使用的是Python版本. 1.下 ...
- Robot Framework中经常用的第三方库的安装方法
pip升级:python -m pip install --upgrade pip 一.安装robotframework-selenium2library,相当于python中的selenium ...
- robot framework中的返回值
1.若想要再setup中有返回值,给后续的操作使用 A)在setup的关键词中需要的返回值,设置为global variable或者suit variable:如下图:但是在编译器中,会报错,但是执行 ...
- robot framework中的timeout的关键词
1.默认robotframework中的含有等待的关键词(如:Wait Until Element Is Enabled),未手动设置时默认该参数为5sec 2.关键词:sleep A)一般在调试的时 ...
- jenkins+gitlab+robot framework 中遇到的坑
问题一:拉Git源代码时提示无权限 原来之前用的ssh密钥一直都是自己的用户生成的.其实在Jenkins系统使用的都是Jenkins这个系统帐号的. 解决方法: 切换到jenkins这个帐号下生成个新 ...
- Robot Framework中的未解之谜
今天在写测试用例的时候偶然发现了一个问题: 一.看脚本逻辑上没有问题,但是在引用变量的时候不能成功引用,脚本截图如下: 这个是关键字A的截图,没有参数. 此时在case中引用${phonesign}和 ...
随机推荐
- 11.10 chkconfig:管理开机服务
chkconfig 命令是Redhat系列的Linux系统中的系统服务管理工具,它可以用于查询和更新不同的运行等级下系统服务的启动状态. chkconfig命令的参数选项及说明 --list 显 ...
- SSH工作过程简介和SSH协议算法集简介
SSH简介 SSH是Secure Shell(安全外壳)的简称,是一种在不安全的网络环境中,通过加密机制和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议. SSH协议采用了典型的客户端/ ...
- 针对spring mvc的controller内存马-学习和实验
1 基础 实际上java内存马的注入已经有很多方式了,这里在学习中动手研究并写了一款spring mvc应用的内存马.一般来说实现无文件落地的java内存马注入,通常是利用反序列化漏洞,所以动手写了一 ...
- Google I/O 2021 Android精华内容
Google I/O 2021结束了, 都有什么精彩内容呢? Android部分的Playlist附上: Android & Play at Google I/O 2021 Developer ...
- Go语言网络通信---string与int互转,int64与[]byte互转,int直接互转,string与[]byte互转
string与int互转 #string到int int,err:=strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt( ...
- Fiddler抓包后转成jmeter脚本
Fiddler的安装及使用 1.安装:无特别需要注意事项 2.使用: (1)目前我使用的是Fiddler 4版本,打开页面如下 (2)如下图,在界面右侧找到Filters tabs,根据需要进行设置, ...
- 面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置
今天去看牙医,他问我年级轻轻牙齿怎么磨损这么严重?我说,没有人点赞的这些年,我都是咬着牙过来的. Java中的垃圾回收器几乎是面试中的必考点,无论是面试初级,中级还是高级,总免不了要问一问垃圾回收器的 ...
- fiddler选项卡-Statistc(统计)
Statistc Statistc是fiddler用来对session列表里的Session相关情况的统计,利用这个选项,可以对请求进行性能以及其他数据分析 1.界面 2.参数详解 建议:打开fidd ...
- 重新整理 mysql 基础篇————— 介绍mysql日志[二]
前言 对于后端开发来说,打交道最多的应该是数据库了,因为你总得把东西存起来. 或是mongodb或者redis又或是mysql.然后你发现一个问题,就是他们都有日志系统,那么这些日志用来干什么的呢? ...
- ABAP SORT排序注意点
SORT TABLE BY XXX XXX .如果不加任何语法都是默认升序,延伸可以用ASCENDING和DESCENDING对具体的字段进行升序和降序排列. 简单通俗的来阐释一下,在字段名后面加AS ...