【问题标题】:How to pass variable file to a test when running robot framework tests on sauce labs?在酱汁实验室运行机器人框架测试时如何将变量文件传递给测试?
【发布时间】:2015-12-22 00:29:47
【问题描述】:

我正在尝试在酱汁实验室进行一些机器人框架测试。我无法将变量文件传递给我的 pybot 命令。 当我在本地运行测试时,我使用这个命令:

pybot  -vbrowser:firefox -vbaseur  --variablefile ../VariableFiles/superdesk.py mytest.robot 

在酱汁实验室我需要传递一些其他变量:酱汁用户名、密钥...

pybot -v browser:firefox -v baseurl:http://myurl.fr -v sauce_apikey:mykey -v sauce_platform:linux -v sauce_username:myusername mytest.robot

如何在我通过 --variable 文件后立即将变量传递给第二个命令,我的测试在本地而不是在酱汁实验室运行。

这个命令我试过了

pybot -v browser:firefox -v baseurl:http://myurl.fr -v sauce_apikey:mykey -v sauce_platform:linux -v sauce_username:myusername --variablefile myvarfile.py mytest.robot 

运行上面的命令时不考虑变量文件。我的测试使用默认变量运行

【问题讨论】:

  • 我不明白这个问题。您可以继续同时使用 -v 和 --variablefile。你是说你同时使用两者,而且 -v 覆盖了你的变量文件中的变量,而你不希望它?
  • 我的问题是如何在使用第二个命令时将变量文件传递给 Pybot,这意味着在酱实验室上运行我的测试。谢谢
  • 在 saucelabs 上运行时,您是否真的尝试过使用 --variablefile?我不明白这个问题。
  • 抱歉不清楚,是的,我在酱汁实验室运行时确实使用了 --variablefile ,但没​​有考虑到这一点。当我在本地使用 --variablefile 时,浏览器会打开我在变量文件中设置的确切 URL。但是在酱实验室中,它会打开默认 URL,就好像我没有将 --variable 文件添加到 pybot
  • 问题可能出在您的测试中,而不是变量文件中。如果机器人没有处理变量文件,它会抛出一个错误。我敢打赌,如果您在其中一个测试中添加一条日志语句,您会看到变量文件中的所有变量都被定义了。

标签: robotframework saucelabs


【解决方案1】:

您的问题的字面答案是“无论您是否使用 saucelabs,您都以相同的方式将变量文件传递给测试”。

除非机器人抛出错误,否则当您包含--variablefile myvarfile.py 时,您的变量文件将被传递给机器人。您可以编写一个简单的测试来验证这一点,方法是让测试记录变量文件中的值。

如果您看到不同的行为,这些行为必须在您的测试用例或您自己的变量文件中。机器人在saucelabs上运行时没有表现出不同的特征。

【讨论】:

  • 好吧,我同意你的观点,理论上这应该是正确的行为,现在我不确定这与我的测试实现有关的原因是,当我使用变量文件,测试在正确的 URL 上运行,比如说 URL B。但是,当我在酱实验室中使用变量文件运行我的测试时,它在 URL A 上运行,默认情况下这是一个 URL,我在资源文件中设置。
  • @Z:编写一个非常简单的测试,除了从变量文件中记录变量之外什么都不做,您可以快速查看文件是否正在加载。
  • 我终于发现这是我的测试中的一个问题,我使用的是 open browser 关键字而没有提供 remot_url 和所需的功能。感谢 Bryan 确认我的怀疑是错误的。
猜你喜欢
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-15
  • 2017-07-31
  • 2016-05-03
  • 2016-04-06
相关资源
最近更新 更多