我使用Robotframework在以下结构中设置了我的测试:
Directory1:
- SuiteA
- SuiteB
- SuiteC
Directory2:
- SuiteA
- SuiteB
我想先使用“pabot”在Directory2中执行套件之前,先从Directory1执行所有测试套件。 Directory2中的测试套件依赖于Directory1中的测试套件,因此执行必须按此顺序执行。如何以这种方式订购执行?
我正在网上阅读有关使用参数文件来指定执行顺序的信息,但我无法弄明白。我还阅读了Robotframework的文档,并使用“number__testsuitename”命名约定相应地命名我的测试套件,但这也没有用。
有什么想法吗?提前致谢!
答案 0 :(得分:1)
基本上,您需要使用要并行运行的测试/套件来修改.pabotsuitenames
文件,并添加#WAIT
标志,以防需要顺序运行(例如) :
datasources:7a60d412cbd2efd728502cddce7ce4cd4b57aa42
commandlineoptions:65f95c924ba97541f47949701c4e3c51192a5b43
suitesfrom:no-suites-from-option
file:984cbf6a94ce4d05453079d2eedf2399a3cae664
--suite Directory 1 Name.Suite A Name
--suite Directory 1 Name.Suite B Name
--suite Directory 1 Name.Suite C Name
#WAIT
--suite Directory 2 Name.Suite A Name
--suite Directory 2 Name.Suite B Name
pabot
确实提供了一些选项来控制并行度和执行顺序。在项目的自述文件中对此进行了描述:
.pabotsuitenames文件包含将要执行的套件的列表。如果文件不在执行过程中,则会在pabot执行期间创建。该文件是pabot在重新执行相同测试以加快处理速度时使用的缓存。该文件可以部分手动编辑。前4行包含不应编辑的信息-当某些更改时,pabot将对其进行编辑。之后是套件名称。
存在三种影响执行的可能性:
套件的顺序可以更改。 如果目录(或目录结构)应顺序执行,请将目录套件名称添加到一行。 您可以添加一行带有文本#WAIT的行,以强制执行程序等待所有先前的套件执行完毕。
答案 1 :(得分:0)
pabot在套件结构中的效果不佳,例如“ 01__B_Test”,因为它将变为“ B_Test”。这意味着套件将按字母顺序而不是编号顺序执行。要解决此问题,所有套件都必须包含在.pabotsuitenames中才能再次调整顺序。拥有数百套套房,这不但麻烦。