有没有办法并行运行Robot Framework测试套件?

8 投票
4 回答
9094 浏览
提问于 2025-04-18 01:18

我有5个测试套件,它们之间是独立的。 我需要在同一个环境下运行这些测试。我的大部分测试套件都是一些API调用。 这些测试套件里的测试用例需要按顺序运行,因为它们之间是有依赖关系的。

有没有办法通过pybot命令同时运行所有的测试套件呢?

4 个回答

0

简单的解决办法是使用Jenkins:

  1. 你可以安装Jenkins,并加上robotframework插件。这样默认情况下,你可以让两个任务同时运行,而不需要任何从属节点。
  2. 或者你可以有多个从属节点,然后在robot中使用标签和节点标签来分配任务。

只需在Jenkins的任务构建部分设置参数,比如:

  1. 对于任务1,使用命令:pybot --include tag1 test.robot
  2. 然后对于任务2,设置为:pybot --include tag2 test.robot。

接着触发上游任务,你就能看到它们同时运行。

不过你还需要确保你访问的文件被其中一个测试任务锁定了。

0

当测试完全独立并且可以同时运行时,我成功地写了一个执行脚本。这个脚本会遍历我想要并行运行测试的所有设备的IP地址,然后用这些IP地址作为参数来调用测试。我还告诉脚本只生成output.xml文件,并根据主机名或IP地址来命名这些文件。最后,脚本会用rebot进行后处理,这样就能生成一个包含所有设备的汇总报告。

3

我们在Workshare也对此事有自己的看法(那时候我们还不知道Mikko的工作),最近我们把它开源了。现在这个工具已经可以投入生产使用,因为我们用它在我们的持续集成(CI,像是jenkins)上并行运行测试。它可以生成完整的最终报告,可以重新运行失败的测试,还有一个全局的设置和清理机制。它能生成与xunit兼容的结果文件,并且在Windows上也能运行 :)(不过Linux是更好的选择!)

你可以在这里找到它: https://github.com/workshare/parallel_pybot

11

在Robot Framework中,测试的并行执行没有原生的支持。也就是说,它本身不提供同时运行多个测试的功能。不过,有一个叫做 Pabot 的工具,可以用来并行执行测试。Pabot可以把测试套件分配到不同的地方去运行,并且会生成一个合并的报告和日志。

撰写回答