是否可以创建 Robot Framework 中所有测试用例中使用的最失败关键字的报告?

Is it possible to create a report of the most failing keywords used over all test cases in Robot Framework?

由于提高了 Robot Framework 中测试用例的自动化测试质量,我们希望清楚地了解所使用关键字的质量。

所以,有人可以解释或帮助我获得包含所有失败关键字的报告或列表,如果可能的话,可以创建一个 "top 10 most failing keywords"。

目前我已经编写了一个 Python 脚本,可以计算所有测试用例和测试套件中的所有关键字。但是,当我想按状态(状态计数 = PASS 和状态 = FAIL)过滤它们时,总数不正确。

这可能与子关键字在父关键字中的状态也被计算在内有关...

for i in files_output:
    dom = ElementTree.parse(i)
    root = dom.getroot()
    print("Adding Keywords")
    for kw in root.iter('kw'):
        count+=1
        kw_element = kw.attrib["name"]
        keyword_list_total[kw_element] = 1

        if kw_element not in keyword_list_failed:
            for item in kw.iter('status'):
                if "FAIL" in item.attrib["status"]:
                    keyword_list_failed[kw_element] = 1

        elif kw_element in keyword_list_failed:
            for item in kw.iter('status'):
                keyword_list_total[kw_element] += 1
                if "FAIL" in item.attrib["status"]:
                    keyword_list_failed[kw_element] += 1

例如:最后一个关键字有TOTAL: 30 但会给出FAILED: 523。这显然没有意义。

谢谢你帮助我!

在这部分代码中:

for kw in root.iter('kw'):
        count+=1
        kw_element = kw.attrib["name"]
        keyword_list_total[kw_element] = 1

您正在将每个 XML 节点上的迭代器元素的 keyword_list_total[kw_element] 设置为 1。因此,每次 XML 中出现相同的关键字时,其总计数都会重置为 1,而您永远不会重置 keyword_list_failed 计数。

示例:

你在测试用例中 运行 关键字 My Keyword 10 次,但每次都失败。使用您的脚本,它将初始化 total keyword_list_total['My Keyword'] = 1 10 次,但将 keyword_list_failed['My Keyword'] 一直添加到 10。您最终会得到 Total: 2, Failed: 10

我建议您在 keyword_list_total 初始值设定项中添加一个检查:

for kw in root.iter('kw'):
    count+=1
    kw_element = kw.attrib["name"]
    if keyword_list_total[kw_element] == None:
        keyword_list_total[kw_element] = 1