博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析python数据后用html输出
阅读量:6305 次
发布时间:2019-06-22

本文共 3383 字,大约阅读时间需要 11 分钟。

哥们做android自动化测试,可是无奈报告输出字段不是自己想要的,于是想自己解析测试报告,所以想了个方法,还不完善记录分享一下

 
#-*-coding:utf-8-*- import json,csv,sys,re#import xlrd,xlwt#from xlutils.copy import copyreload(sys)sys.setdefaultencoding("utf-8")f = file(r"result.json")#获取python数据    #f1 = open(r"D:\result.txt","w")#a = json.load(f)class Test(object):        def __init__(self,_file):        self._file = _file            #获取json    def get_json(self):        self.value  = json.load(self._file )        return self.value    #使用相应方法获取相应字段    def get_result(self,value):        results = self.value["results"]        key_list = []        value_list = []        status_list = []        key_list = []        fail_list = []        #遍历key与value        try:            for key,value in results.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 in testR:                    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) return key_list,value_list,status_list,fail_list except: 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 #输出为htmldef html_table(): a= Test(f) #k,v= a.get_result(a.get_json()) k,v,s,fail= a.get_result(a.get_json()) print str(v) html = '''
''' #c = [] for i in range(len(k)): #k[i] = "".join(k[i]) #print len(v) #pass html += '''
''' % (k[i],";".join(v[i]),len(v[i]),s[i].count('FAIL'),s[i].count('PASS'),"".join(fail[i])) html += '''
model method cout FAIL PASS FAIL's mehtod
%s %s %s %s %s %s
''' return html def report(): with open('test.html', 'w') as f: f.write(html_table()) report()

 

 重新对脚本进行了优化 ,对数据进行分行,刚开始怎么都传不开,结果发现输出的是html格式,直接用<br/>就可以解决如此简单的问题啊

转载于:https://www.cnblogs.com/BUGU/p/4798071.html

你可能感兴趣的文章
使程序以管理员权限运行(C++)
查看>>
CListCtrl 实现排序功能(数字和字母)
查看>>
vuejs electron webpack集成使用
查看>>
MySQL数据类型
查看>>
BackgroundWorker源码
查看>>
UML软件方法大纲
查看>>
【python】python程序分行写符号
查看>>
XML DTD详解(转)
查看>>
职场之道
查看>>
POJ 2353 Ministry(DP,前缀)
查看>>
linux C socket
查看>>
[TCP/IP] 网络层-简单查看路由表
查看>>
django form 验证
查看>>
python三目表达式
查看>>
取一串数的具体位数
查看>>
nodejs模块——fs模块 文件操作;nodejs文件操作
查看>>
ABP Zero示例项目问题总结
查看>>
XMPP_05_网络编程
查看>>
数码测评网站
查看>>
第四周编程总结
查看>>