我编写了一个python脚本,通过测试结果的xml输出进行解析,然后打印testsuite名称、其中的testcases以及pass和fail。下面是一个例子:百分比告诉您套件中测试用例的通过百分比。数字65和85是运行时。如果一个测试失败了,我必须重新运行那个特定的测试,这个测试反过来生成一个新的XML文件。我要做的是通过解析所有的xml来收集所有的结果。如果测试失败10次。然后它将在它旁边打印它的所有运行时
TestSuite 0%
Testcase1 65 FAIL
Testcase2 86 FAIL
当前输出如下所示
TestSuite 0%
Testcase1 65 FAIL
Testcase2 86 FAIL
测试套件1 50%
Testcase5 43 FAIL
Testcase6 78 PASS
测试套件50%
Testcase1 65 FAIL
Testcase2 87 FAIL
注意“TestSuite”是如何重复两次的,就像在2xmls中看到的那样。理想情况下,我希望脚本打印1个Testsuite,然后指定每个测试用例通过或失败的次数,而不是一次又一次地打印所有相同的测试用例。目前,我输出的所有结果在一个日志文件,我是用regex解析出这些细节,但我卡住了,不知道该怎么办
编辑:
import re
import collections
testsuites=[]
theFile=open('output.log','r')
FILE=theFile.readlines()
testname=[]
Entire_line=[]
for line in FILE:
searchObj=re.search('^[A-Z].*$',line)
searchObj_1=re.search('^([a-z].*) (.*?) (.*)',line)
searchObj_2=re.search('^[a-z].*',line)
if searchObj:
testsuites.append(searchObj.group())
if searchObj_1:
testname.append(searchObj_1.group(1))
if searchObj_2:
Entire_line.append(searchObj_2.group())
print searchObj_2.group()
Entire_line=sorted(Entire_line)
print testname
print Entire_line
整个行基本上按顺序打印整个测试用例,并对它们进行排序,但不计算它们,我只是被卡在那里了。。整行输出:
testcase1 45 FAIL
testcase1 54 PASS
testcase2 66 FAIL
testcase2 77 PASS
testcase3 88 PASS
testcase4 34 PASS
我想知道的是testcase1失败了一次,但是第二次通过了。它跑了两次。希望这能澄清问题
我在这里要做的是使用字典、列表和元组,这样最终得到的结构如下所示:
在将结果插入其中之后,您将遍历测试套件字典和测试用例字典,根据需要对列表内容求和后打印结果
我在一个平板电脑上,否则我会写一个如何创建/操作它的代码片段,但我希望这个例子能有一些转机
相关问题 更多 >
编程相关推荐