是否可以创建 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
由于提高了 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