是否可以为 Robot Framework 中所有测试用例中使用的最失败的关键字创建报告?
Posted
技术标签:
【中文标题】是否可以为 Robot Framework 中所有测试用例中使用的最失败的关键字创建报告?【英文标题】:Is it possible to create a report of the most failing keywords used over all test cases in Robot Framework? 【发布时间】:2020-01-19 11:39:26 【问题描述】:由于提高了 Robot Framework 中测试用例的自动化测试质量,我们希望对所使用的关键字的质量有一个清晰的认识。
那么,有人可以解释或帮助我获取包含所有失败关键字的报告或列表,并在可能的情况下创建“前 10 个最失败的关键字”。
目前我编写了一个 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。这显然没有意义。
已经谢谢你帮助我了!
【问题讨论】:
【参考方案1】:在这部分代码中:
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 次,每次都失败。使用您的脚本,它将总共初始化 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 中所有测试用例中使用的最失败的关键字创建报告?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以通过 Xpath 在 Robot Framework 中同时等待两个 Web 元素?
是否可以在不安装 Python 的情况下在 Windows 上安装 Robot Framework?