Selenium 自定义自动化测试报告整理

参考代码github地址:https://github.com/zhangfei19841004/ztest

原报告截图

Selenium 自定义自动化测试报告整理_第1张图片

修改后的报告截图

Selenium 自定义自动化测试报告整理_第2张图片

 

修改自动化报告

        以下是之前写的自动化测试报告模板,所有的东西都是用excel来完成,作为一个秘籍恐惧症患者真的很恐惧 ,再次感谢https://github.com/zhangfei19841004/ztest 同学,可以用html的方式去呈现自动化报告,源码中的格式与自己写的报告格式不同,之前又学过一些html,jQuery的知识,这次正好用的上,嘻嘻!

        简述一下逻辑,将csv文件中的数据读取出来,然后用重跑的用例针对之前的报错的进行更改,然后在将数据写到html文件中,然后就是一份自定义的自动化测试报告了。 

执行开始时间 2019/1/13 18:57 执行结束时间 2018/10/20 19:09    
耗时(秒) 0时12分31秒        
用例总数 8        
用例初始通过数 4 用例初始通过率 50.00%    
用例初始失败数 4 用例初始失败率 50.00%    
用例重跑后通过数 6 用例重跑通过率 75.00%    
用例重跑后失败数 2 用例重跑失败率 25.00%    
           
           
           
用例详细报告          
SNG-001 写信 发送邮件1 send_mail1 TRUE succeed
SNG-002 草稿箱 发送邮件2 send_mail2 TRUE succeed
SNG-003 订阅邮件 发送邮件3 send_mail3 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}
SNG-004 写信 发送邮件4 send_mail4 TRUE succeed
SNG-005 草稿箱 发送邮件5 send_mail5 TRUE succeed
SNG-006 写信 发送邮件6 send_mail6 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}
SNG-007 草稿箱 发送邮件7 send_mail7 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}
SNG-008 草稿箱 发送邮件8 send_mail8 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}
           
重跑的用例          
SNG-003 写信 发送邮件3 send_mail3 TRUE succeed
SNG-006 草稿箱 发送邮件6 send_mail6 TRUE succeed
SNG-007 草稿箱 发送邮件7 send_mail7 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}
SNG-008 订阅邮件 发送邮件8 send_mail8 FALSE selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"blog_nav_newpostxx"}

 修改HTML

1、修改html部分,添加了多个要素,以及详细数据的“耗时”


测试报告
报告汇总
详细数据
编号测试模块测试用例函数名称结果操作

 

修改的CSS部分

    其中将原有的单列要素,修改为多列要素

        .form-horizontal .form-group{
            width: 40%;
            float: left;
        }
        .statistical{
            width: 40%;
        }
        .col-sm-5{
            width: 60%;
        }
        .highly{
            height: 35px;
        }
        
        .text-danger,.text-warning{
            color: #1ab394;
        }
        .text-error{
            color: #EF5352;
        }

 

修改js部分

       其中添加了多个数据的显示,将原有的报错信息数组类型,修改为字符串形式






 

数据读取

其中都是写死的,简直不忍直视,很尴尬

#coding=utf-8
'''
Created on 2019年1月13日

@author: pinsengjiujiezhong
'''
with open('customerStatistical.csv','r') as fo:
    lines = fo.readlines()
    ReportList = []
    for line in lines:
        list = line.strip().split(',')
        ReportList.append(list)

startTime = ReportList[0][1]
endTime =  ReportList[0][3]
executionTime = ReportList[1][1]
listSum = ReportList[2][1]
passSum =  ReportList[3][1]
Pass = ReportList[3][3]
fillSum = ReportList[4][1]
Fill = ReportList[4][3]
passAllSum = ReportList[5][1]
startPass = ReportList[5][3]
startFillSum = ReportList[6][1]
startFill = ReportList[6][3]
startResult = []
endResult = []
IntegrationReport = []

for list in ReportList:
    if list[0] == u'用例详细报告':
        startIndex = ReportList.index(list)
    elif list[0] == u'重跑的用例':
        endIndex = ReportList.index(list)
for Report in ReportList[startIndex+1:endIndex-1]:
    Result = {'className' : Report[1],
            'methodName' : Report[2],
            'description' : Report[3],
            'status' : Report[4],
            'log' : Report[5],}
    startResult.append(Result)
for Report in ReportList[endIndex+1:-1]:
    Result = {'className' : Report[1],
            'methodName' : Report[2],
            'description' : Report[3],
            'status' : Report[4],
            'log' : Report[5],}
    endResult.append(Result)

for start in startResult:
    for end in endResult:
        if start['description'] == end['description']:
            start = end
            break
    IntegrationReport.append(start)

        
Result =   {'startTime' : startTime,
            'endTime' : endTime,
            'executionTime' : executionTime,
            'listSum' : listSum,
            'passSum' : passSum,
            'Pass' : Pass,
            'fillSum' : fillSum,
            'Fill' : Fill,
            'passAllSum' : passAllSum,
            'startPass' : startPass,
            'startFillSum' : startFillSum,
            'startFill' : startFill,
            'startResult' : startResult,
            'endResult' : endResult,
            'IntegrationReport' : IntegrationReport}


import json
Result = json.dumps(Result)
with open('template','rb') as fo:
    lines = fo.read()
    fo.close()
lines = lines.replace(b'Edit_resultData',Result.encode('utf-8'))
with open('test.html','wb') as fo:
    fo.write(lines)
    fo.close()

 

在学了1个月vue后,强行将js所用的jQuery编写的部分改成了vue来渲染页面,真的是强行变更的,很勉强,其中需要替换2个数据resultDict、items

  
  
测试报告
报告汇总
{{item[1]}}
详细数据
编号测试模块测试用例函数名称结果操作
{{index + 1}} {{result.className}} {{result.methodName}} {{result.description}} {{result.status}}
{{result.log}}

 

 

 

你可能感兴趣的:(Selenium)