我在一个pybot命令中运行多个测试套件,如下所示,
pybot suite1.robot suite2.robot suite3.robot
现在,这些机器人套件中的每一个都将一个键值添加到全局字典中(此测试变量包含一些需要返回给测试调用者的指标),
{ "suite1-res" : xxxx,
"suite2-res" : yyyy,
"suite3-res" : zzzz }
现在,需要将此词典发布到kafka /任何消息传递代理。我喜欢这个功能写在一个后运行的钩子函数/机器人案例中,它将在所有机器人案例结束时只运行一次。
可以将此运行后挂钩功能添加为运行时参数(如suite teardown
),而不是将其作为额外的机器人测试用例参数传递。
答案 0 :(得分:1)
如果您将所有这些套件放在一个文件夹中,则可以在所有子套件完成后运行的文件夹中附加套件拆解。
$ mkdir all_tests
$ mv suite*.robot all_tests
$ # edit all_tests/__init__.robot to have a suite teardown
$ pybot all_tests
您可以使用侦听器,该侦听器可以收集数据并运行后处理步骤。例如,您的测试可以将度量标准作为套件元数据附加,当每个套件调用end_suite
时,侦听器将获得该元数据。侦听器可以存储所有这些元数据,然后在调用close
时处理它。有关详细信息,请参阅机器人框架用户指南中的Using the listener interface以及内置库中Set Suite Metadata关键字的文档。
有关详细信息,请参阅机器人框架用户指南中标题为Test Suite Directories的部分。为此,您的测试必须将字典写入文件。
您的另一个选择是编写一个运行pybot命令的简单bash或批处理脚本,然后执行您想要的任何后期处理。您的测试需要以某种方式使字典数据可用。例如,您可以将数据存储为suite metadata,然后让后处理步骤将该数据从output.xml中提取出来。或者,您的套件可以将数据写入文件。