【发布时间】:2021-09-07 16:37:30
【问题描述】:
我正在 Robot Framework 中编写一个测试用例,在其中,我必须将文件从本地机器 (windows) 复制到远程服务器 (linux) 或在该位置创建一个新文件。
我使用了多个 sudo su - 命令将用户切换到 root 用户 以访问所需的主机。因此,我无法使用来自SSH Library 的Put File 关键字来上传文件。通过执行带有Write 关键字的命令,我已经到达了所需的文件夹位置。
由于没有选择余地(这就是我对机器人框架知识有限的认识),我开始使用vi <filename> 命令创建一个新文件。我也进入了文件的插入模式,但是我无法将文本编辑到文件中。
有人可以建议我怎么做
- 在多个 SU 命令后将文件从本地 windows 机器复制到远程 linux 服务器(切换用户)
- 新建一个文本文件并输入内容。
请参阅:正在创建/复制的新文件是证书文件。因此,我不希望将证书的全部内容写入我的测试套件文件中
整个测试用例看起来是这样的
First Jump1
Log Starting the connection to AWS VM
# Connection to VM with Public Key
Connection To VM ${hostname} ${username}
Send Command sudo su -
Send Command su - <ServiceUser1>
# Reached the Detination server
Send Command whoami
Send Command ss -tln | grep 127.0.0.1:40
# Connecting to Particular ZIP
Send Command sudo -u <ServiceUser2> /usr/bin/ssh <ServiceUser2>@localhost -p <port>
Send Command sudo su -
# Check Auth Certificate
Send Command mosquitto_pub -h ${mq_host} -p ${mq_port} -u ${mq_username} -P ${mq_password}
在步骤Check Auth Certificate中,检查证书是否存在,如果存在 -> 删除当前证书并创建新证书(创建新文件或从本地上传) 如果不存在则创建一个新证书
【问题讨论】:
-
为什么需要多个 sudo su 命令?您能否详细说明如何连接到所需位置
-
因为我们的团队没有公钥和私钥来与服务/技术用户连接目标主机。因此必须与我们的个人用户联系,然后
sudo su命令 -
我的意思是,你需要建立多少连接,你需要在哪里切换用户等等......
-
@JiriJanous 它的 3 个连接 - 测试用例在问题中更新
-
您可以使用登录用户使用 scp 复制文件(甚至复制到 /tmp),然后 su,将其复制到本地目标文件夹并根据需要更改其所有权。
标签: ssh robotframework robotframework-sshlibrary robotframework-pythonremoteserver