#-*-coding:utf-8-*-
importjson,csv,sys,re#import xlrd,xlwt#from xlutils.copy import copy
reload(sys)
sys.setdefaultencoding("utf-8")
f= file(r"result.json")#获取python数据
#f1 = open(r"D:\result.txt","w")#a = json.load(f)
classTest(object):def __init__(self,_file):
self._file=_file#获取json
defget_json(self):
self.value=json.load(self._file )returnself.value#使用相应方法获取相应字段
defget_result(self,value):
results= self.value["results"]
key_list=[]
value_list=[]
status_list=[]
key_list=[]
fail_list=[]#遍历key与value
try:for key,value inresults.items():#key_list.append(key)
model = value['deviceDetails']['model']
key_list.append(model)#key_list.append(key)
testR= value["testResults"]#print testR
method_list =[]
s_list=[]
fails=[]
c_list=[]for r intestR:
method_list.append(r[0]['methodName'])
s_list.append(r[1]['status'])if r[1]['status'] == 'FAIL':
fail=r[0]['methodName'].strip()try:
mess=r[1]['exception']['cause']['message'].strip()
fails.append(str(u'FAIL:')+fail+","+"
CASE:"+mess+"
")except:
mess= "no message"fails.append(u'FAIL:'+fail+","+"\n CASE:"+mess+"
")
value_list.append(method_list)
status_list.append(s_list)
fail_list.append(fails)returnkey_list,value_list,status_list,fail_listexcept:return 'fail'
#a= Test(f)#print a.get_result(a.get_json())#k,v,s,fail= a.get_result(a.get_json())#print k,v,s,fail
#输出为html
defhtml_table():
a=Test(f)#k,v= a.get_result(a.get_json())
k,v,s,fail=a.get_result(a.get_json())printstr(v)
html= '''
.table-b table,th, td
{
font-size:1em;
border:1px solid #98bf21;
padding:3px 7px 2px 7px;
}
table
{
border-collapse:collapse;
}
th
{
font-size:1.1em;
text-align:left;
padding-top:5px;
padding-bottom:4px;
background-color:#A7C942;
color:#ffffff;
}
model | method | cout | FAIL | PASS | FAIL's mehtod |
---|
#c = []
for i inrange(len(k)):#k[i] = "".join(k[i])
#print len(v)
#pass
html += '''
%s%s%s%s%s%s''' % (k[i],";".join(v[i]),len(v[i]),s[i].count('FAIL'),s[i].count('PASS'),"".join(fail[i]))html+= '''
'''
returnhtmldefreport():
with open('test.html', 'w') as f:
f.write(html_table())
report()