【问题标题】:Robot Framework - SSH library - Editing a file on remote serverRobot Framework - SSH 库 - 在远程服务器上编辑文件
【发布时间】:2021-09-07 16:37:30
【问题描述】:

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

有人可以建议我怎么做

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

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

整个测试用例看起来是这样的

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


【解决方案1】:

虽然它可能不理想,但能够实现我想要做的事情

echo "content" > newFilename
echo "update content" >> newFileName

【讨论】:

    猜你喜欢
    • 2014-04-05
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    相关资源
    最近更新 更多