问题标签 [robotframework-sshlibrary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
921 浏览

ssh - Robot Framework - SSH 库 - 使用公钥登录

我正在尝试使用带有 SSH 库的 Robot Framework 中的私钥与托管在 AWS 云上的机器创建 SSH 连接。使用的关键字是 - Login With Public Key。下面是当前用红色编辑器在 Eclipse 中编写的代码

但不幸的是,这在 Eclipse 控制台中给我带来了错误,看起来像

从logfile.txt查看SSH日志,信息如下

我能够使用相同的密钥文件成功地使用 PuTTY 和 MobaXterm 手动创建连接。

你能帮我理解我在做什么错误或者需要改变什么来建立成功的连接。

谢谢

0 投票
1 回答
365 浏览

automated-tests - Robot Framework -SSHLibrary - 文件应该存在

我目前正在使用 Eclipse 和 RED 插件在 Robot Framework 中开发测试用例,以在 Linux VM 上自动化测试用例。其中一个关键字的代码如下所示

Send Command是一个自定义关键字,用于使用 Write & Read 关键字执行命令并记录结果。问题是 - 此位置存在一个文件 (mqtt-server.crt) - /root/.ssh/。从控制台输出中,我能够验证控件是否已到达所需文件夹中。但是,当执行来自 SSHLibrary- File Should Exist的关键字时,它会失败。我想验证文件夹中是否存在提到的文件,如果存在,则需要将其删除。控制台中的输出是

您能否告诉我,需要更改哪些内容才能使其正常工作或如何解决此问题。

0 投票
1 回答
212 浏览

ssh - Robot Framework - SSH 库 - 在远程服务器上编辑文件

我正在 Robot Framework 中编写一个测试用例,在其中,我必须将文件从本地机器(windows)复制到远程服务器(linux)或在该位置创建一个新文件。我使用了多个sudo su -命令将用户切换到root 用户以访问所需的主机。因此,我无法使用Put File关键字 fromSSH Library上传文件。Write通过执行带有关键字的命令,我已到达所需的文件夹位置。由于没有选择余地(这就是我对机器人框架的有限知识所意识到的),我开始使用vi <filename>命令创建一个新文件。我也达到了文件的插入模式,我无法将文本编辑到文件中。

有人可以建议我怎么做

  1. 在多个 SU 命令后将文件从本地 windows 机器复制到远程 linux 服务器(切换用户)
  2. 创建一个新的文本文件并输入内容。

请参阅:正在创建/复制的新文件是证书文件。因此,我不希望将证书的全部内容写在我的测试套件文件中

整个测试用例看起来像这样

Check Auth Certificate步骤中,检查证书是否存在,如果存在 -> 删除当前证书并创建新证书(创建新文件或从本地上传),如果不存在则创建新证书

0 投票
1 回答
30 浏览

python-3.x - 如果我将从 db 获取的索引号存储在变量中并在按索引从列表中选择时使用,m 得到错误作为预期字符串,int found-Robot Framework

在此处输入图像描述

--getting error as expected string, int found

-----没有收到任何错误

${inp_msge_type}----contains 7 from DB query 结果存放在这个变量中,为了避免硬编码我们需要这样做有什么办法可以写

0 投票
1 回答
494 浏览

database - Robot Framework: Connect to PostgreSQL Database via SSH Tunnel

i'm facing the following problem. I've got a PostgreSQL database on a remote server. In order to access it, i need to pass through a SSH Tunnel.

So, the steps of my test are:

  1. create the tunneling
  2. Connect to the db
  3. perform query / queries

I'm able to create the tunnel by using SSHLibrary, and it works:

So i go on by using DatabaseLibrary to perform the connection (and i've checked all the fields are right):

but i get the following error:

How can i solve it? I think i need to specify in some way that the database connection must be done by using the tunnel but i don't know how to do it. Here's the complete test code:

I would like to do it by using RF, Anyone can help? Thank's a lot

0 投票
1 回答
57 浏览

selenium - 如何为 RoboTFramework 中的每个测试套件(.robot 文件)生成 report.html?

我正在使用单个 pycharm 项目为特定网站运行不同的测试文件。ex -: 我有带有测试用例的机器人文件,例如

loginTest.robot , purchasetest.robot , signinwith_facebook.robot

当我为每个机器人文件运行代码时,报告文件被覆盖。

如何在测试文件运行时为每个 .robot 文件生成单独的报告文件。

0 投票
1 回答
23 浏览

robotframework - 如何使用 SSHLibrary 在远程机器中打开 tmux 会话?

tmux无法在机器人框架中使用 SSHLibrary 在远程机器中创建会话。

代码尝试 -

输出-

0 投票
2 回答
67 浏览

robotframework - 关于 RobotFramework SSHLibrary 中的预期超时

我是机器人框架的新手。

我正在编写一个预期的测试程序

连接到另一台机器 执行映像更新(这会导致设备关闭所有服务并自行重启) 重新连接到设备 运行返回已知字符串的命令。

这一切都应该发生在__init__.robot模块中

我注意到的是,我必须以同步或阻塞方式调用升级过程,就像这样

Execute Command sysupgrade upgrade.img

这成功升级了单元,但机器人框架脚本在执行命令时挂起。我怀疑这是可行的,因为它可以使 ssh 会话保持足够长的时间,以使升级到达一个关键连接点,在该连接点,远程主机关闭会话,主机期望这一点,升级继续,这不会导致升级失败。

但是远程主机似乎以一种机器人框架脚本没有检测到它的方式关闭了 ssh 会话,并且该脚本无限期挂起。

试图解决这个问题,我尝试像这样调用远程命令

Execute Command sysupgrade upgrade.img &

但随后更新失败,因为连接似乎断开并且升级过程不完整。

相反,如果我像这样执行它

然后这也失败了,由于某种原因我无法推断。

但是,如果我这样调用它

Execute Command sysupgrade upgrade.img timeout=600

该命令成功更新单元,并且在设置的超时时间之后,robotframework 脚本确实恢复了,但是由于它已经到了超时,所以测试(从robotframework的角度来看)失败了。

但这实际上是预期的失败,应该被忽略。然后脚本的其余部分将重新连接到主机并继续剩余的测试

有没有办法将超时条件视为非致命的?

这是代码,如上所述,__init__.robot初始化模块预计将执行升级然后重新连接,让其他xyz .robot文件继续运行并继续测试应用程序。

__init__.robot文件:

0 投票
1 回答
12 浏览

selenium - 需要在 Robot Testcase 中使用 Open Connection 连接的远程机器上访问 Firefox 浏览器

问题陈述是:执行 Robothost Testcase -> 使用 Open Connection 关键字连接到 machineX。使用 Open Browser 关键字打开 machineX 的 Firefox。但是,不是打开 machineX 的 firefox 浏览器,而是来自 Robothost 的浏览器正在从执行测试用例的位置打开。但是我的测试用例执行只需要在 machineX 中打开的网页上完成。

由于在连接到远程机器后使用了打开浏览器,因此希望远程机器的浏览器处于活动状态。验证到远程机器的连接是活动的。

下面是尝试从 machineX 打开浏览器的示例代码

处理这种情况的任何建议