Robotframework 如何将所有病例报告合并为一份最终报告?

Robotframework 如何将所有病例报告合并为一份最终报告?,robotframework,Robotframework,我知道有命令要合并: rebot --merge TC002-002output.xml rerunTC002-002output.xml 然而,我有大约50个单一的报告合并,有没有更好更快的方式来合并他们。 结构如下 Output\TC001.xml .....TC020.xml Output\NEW\TC030.xml.....TC050.xml 您可以使用创建一个脚本,该脚本递归地收集给定文件夹中的所有XML,然后合并它们 #/usr/bin/env python 导入系统 导入操作系

我知道有命令要合并:

rebot --merge TC002-002output.xml rerunTC002-002output.xml
然而,我有大约50个单一的报告合并,有没有更好更快的方式来合并他们。 结构如下

Output\TC001.xml .....TC020.xml
Output\NEW\TC030.xml.....TC050.xml
您可以使用创建一个脚本,该脚本递归地收集给定文件夹中的所有XML,然后合并它们

#/usr/bin/env python
导入系统
导入操作系统
从robot导入重新启动cli
def collect_xmls(路径,xmls):
对于os.listdir(路径)中的文件名:
file_path=os.path.join(路径,文件名)
如果filename.endswith('.xml'):
fullname=os.path.join(路径,文件名)
append(文件路径)
如果os.path.isdir(文件名):
收集xmls(文件路径,xmls)
root_folder=sys.argv[1]
重新启动参数=[]
收集XML(根文件夹,重新启动参数)
重新启动cli(重新启动参数)

可以这样称呼它:
python merge.py Output
。此脚本假定所有XML都是输出XML,但您可以添加更多文件名检查。

我不明白,您想将它们合并到一个报表中吗?您可以使用rebot合并多个文件,并且它支持通配符。如果您只需要一个文件,它可以是一个简单的文件liner@JiriJanous我已经解释过我有很多文件,在命令行中一个一个地输入它们是没有效率的。这就是通配符发挥作用的地方。例如,您可以编写rebot--merge TC*rerunTC*命令python merge.py Output,输出的名称是最终报告吗?我可以做python merge.py finaloutput.xml吗?对不起,我的python不是很好。我应该将脚本的实际路径粘贴到哪里?@guo我看你已经接受了答案。你以前的评论是否仍然有效?您可以从命令行
python merge.py Output finaloutput.xml
传递多个参数。任何要重新启动的参数都可以进入
reboot_args=['--merge',sys.argv[2]',param3']
Output
在我的示例中是可以找到xml的文件夹。合并的输出名称将是默认的
log.html
report.html
Output.xml
。我遇到了无法合并包含不同根套件的输出这样的错误。原始套件为“TC001-001”,合并套件为“TC001-002”。“为什么?”郭看到了我最新的答案。您必须删除
--merge
参数才能组合不同的测试套件。仅当要合并同一套件的结果时,合并才适用。更多信息: