【问题标题】:Running couple of tests in robot framework infinitely在机器人框架中无限运行几个测试
【发布时间】:2023-03-30 15:28:01
【问题描述】:

我怎样才能在机器人框架中无限地或至少大量地有限地运行几个测试。

例如:

测试用例 1 . . .

测试用例 2 . . . 测试用例 3 . . . 我希望测试按 1,2,3,1,2,3... 的顺序有限地(对于大数)或无限地运行。

我知道如何做一个测试。但我希望它在测试 3 之后返回并执行测试 1。我希望这批循环运行。

【问题讨论】:

  • 嗯,是的,对我们来说非常有用。干得好!
  • 您可以创建一个批处理文件来调用您的 .robot 文件。这个批处理文件将有一个无限循环(而真正的循环)..这应该可以解决问题..?
  • 在输入“kill key”后在批处理文件末尾添加rebot命令?您仍然会得到单个报告,但至少一旦无限循环被终止,它将它们捆绑在一起。除此之外,我不知道有什么方法可以在 RF 中完成您的要求
  • stackoverflow.com/a/30288294/4278756 与您将要进入无限循环一样接近。我建议至少创建一个批处理文件,然后创建每个报告-如果 RF 突然死亡,我不知道链接的答案将如何应对,如果你会得到任何报告。宁可超过 0,IMO。
  • 替代@Goralight,你可以使用Robot监听器来提供实时执行状态:robotframework.org/robotframework/latest/…

标签: robotframework


【解决方案1】:

不可能在 RF 中创建无限循环,无限循环地反复运行当前文件。相反,您可以创建一个指向 RF 文件的脚本,为您处理无穷大(ness),然后在需要时终止该进程并将所有 output.xml 连接在一起,创建所有母亲 RF 的母亲报告。这是 Python 中的一个简单示例:

import subprocess
import os
import glob

try:
    while True:
        subprocess.call("robot EnterFileNameHere.robot")  # Add any robot options you may want
except KeyboardInterrupt:
    total = []
    os.chdir("/DirectoryWhich/HasAll/TheXML/Files")
    for GrabbedFiles in glob.glob("*.xml"):
        total += GrabbedFiles
    Converted = " ".join(str(x) for x in total)
    subprocess.call("rebot {0}".format(Converted))  # Add any rebot options you may want

更改目录以匹配您的文件所在的位置,这应该会无限触发您选择的机器人文件,不断创建报告文件/输出文件。一旦你杀死它(使用 CTRL+C),它会接受 KeyboardInterrupt,然后为你合并所有输出文件,然后关闭终端。

在 RF 本身内执行此操作的唯一其他方法是通过此答案 here 但这只会在循环完成后为您生成报告。如果您突然杀死 RF,我不知道它将如何处理报告生成。我认为它根本不会创建任何报告。所以就个人而言,我认为这是你最好的选择。

如有任何问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2016-05-03
    • 2019-03-15
    • 2018-02-23
    • 2020-07-12
    • 2016-02-20
    • 2016-02-10
    • 2017-11-14
    • 2022-01-24
    相关资源
    最近更新 更多