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

本文共 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

你可能感兴趣的文章
js 效果
查看>>
19.Java5同步集合类的应用
查看>>
<c:forEach varStatus="status">中 varStatus的作用
查看>>
Aqua Data Studio 数据库开发工具
查看>>
puppet来管理文件和软件包
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
阻塞非阻塞异步同步 io的关系
查看>>
ClickStat业务
查看>>
DMA32映射问题
查看>>
Android内存泄露之开篇
查看>>
提高效率—编程中的技巧
查看>>
导出excel——弹出框
查看>>
高并发程序设计
查看>>
ExtJs之组件(window)
查看>>
SoapUI中如何传递cookie
查看>>
静态成员变量的初始化
查看>>
POJ 1269 Intersecting Lines(判断两直线位置关系)
查看>>
MSSQL数据库跨表和跨数据库查询方法简(转)
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>