指定“WITH NAME”以从单个测试用例访问多个机器人框架远程服务器的正确方法是啥?
Posted
技术标签:
【中文标题】指定“WITH NAME”以从单个测试用例访问多个机器人框架远程服务器的正确方法是啥?【英文标题】:What is the correct way to specify 'WITH NAME' to access multiple robotframework Remote servers from a single test case?指定“WITH NAME”以从单个测试用例访问多个机器人框架远程服务器的正确方法是什么? 【发布时间】:2014-10-15 15:55:43 【问题描述】:根据http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#remote-library-interface 的文档,这非常简单。所以我尝试了那里描述的内容:
*** Settings ***
Library Remote http://$ADDRESS:$PORT WITH NAME LinuxHost
Library Remote http://$ADDRESS:$PORT WITH NAME WindowsHost
*** Variables ***
$ADDRESS 127.0.0.1
$PORT 8270
*** Test Cases ***
Example
WindowsHost.Start Process /bin/sleep 60
LinuxHost.Start Process /bin/sleep 60
LinuxHost.Run Process /bin/sleep 20
这失败了
Error in file 'processtest.txt': Test Library 'Remote' expected 0 to 1 arguments, got 2.
我正在像这样运行 python 远程服务器:
from robot.libraries import Process
r=robotremoteserver.RobotRemoteServer(Process.Process(),'0.0.0.0')
当我只有一个没有“WITH NAME”关键字的库时,它可以正常工作。这是机器人服务器 2.8.5。
这是Multiple remote libraries with robot framework 的相反问题。
【问题讨论】:
【参考方案1】:WITH NAME
和后面的名称之间没有足够的空格。您需要两个或更多空格,以便 WITH NAME
单独位于一列中。
Robot 会在单元格中查找字面词 WITH NAME
并且仅这些词。由于您没有足够的空间将其与下一个单元格分开,因此机器人认为这只是远程库的另一个参数。
来自文档(重点是我的):
指定新名称的基本语法是在库名称之后添加文本 WITH NAME(不区分大小写)然后在下一个单元格中添加新名称
【讨论】:
谢谢。我想知道机器人框架是如何分离标记(列)的——我显然仍处于“快速启动”阶段。 @Marvin:如果您刚刚学习,我建议使用管道分隔格式。有关说明,请参阅 this blog post。 @Marvin:避免此类问题的另一种选择是使用 RIDE。它为您处理所有文件格式。 @Bryan 我阅读了更多文档,我同意管道分隔符是一个好方法。我正在尝试将这项技术带入我们的开发组,因此清晰性很好。我还遇到了 robots.tidy,它在格式之间切换以查看它们的外观很有用。以上是关于指定“WITH NAME”以从单个测试用例访问多个机器人框架远程服务器的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
pytest-repeat插件,指定用例重复运行重复运行次数
pytest-28-重复执行用例(pytest-repeat)