zoukankan      html  css  js  c++  java
  • python转化rebot的report报告

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    import os,sys,time
    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    from selenium.webdriver.common.keys import Keys
    class get_Trandlation(object):
    def __int__(self,report_path):
    self.report_path=report_path
    def get_tran(self,report_path):
    browser = webdriver.Chrome()
    browser.get(report_path)
    detailContent=browser.find_element_by_xpath("//table[@class='details']").text
    totalContent=browser.find_element_by_id("total-stats").text
    TagContent=browser.find_element_by_id("tag-stats").text
    SuiteContent=browser.find_element_by_id("suite-stats").text
    total=browser.find_element_by_xpath("//*[@id='total-stats']/tbody/tr[1]/td[2]").text
    pass_t=browser.find_element_by_xpath("//*[@id='total-stats']/tbody/tr[1]/td[3]").text
    details='%.2f%%' % (int(pass_t)/int(total)*100)
    return detailContent,totalContent,TagContent,SuiteContent,total,pass_t,details
    class createReport(get_Trandlation):
    def __init__(self,report_path):
    self.report_path=report_path
    s=self.get_tran(report_path)
    detailContent=s[0]
    totalContent=s[1]
    TagContent=s[2]
    SuiteContent=s[3]
    total=s[4]
    pass_t=s[5]
    details=s[6]
    self.detailContent=detailContent
    self.totalContent=totalContent
    self.byTagContent=TagContent
    self.bySuiteContent=SuiteContent
    self.total=total
    self.pass_t=pass_t
    self.percentage=details
    def createReportContent(self,report_path):
    result = self.detailContent.split(" ")
    sDetail=''
    for index in range(len(result)):
    if (index != len(result)):

    sDetail="%s%s<br>" % (sDetail,result[index])
    else:
    sDetail="%s%s" % (sDetail,result[index])
    detailTable = "<font size='5' style='font-weight:bold'>Summary Information</font><br><table width='1000' border='1' cellpadding='1' cellspacing='1'><tr><td width='100%'>" + 'Run Pass Rate: ' + self.percentage + " </td></tr><tr><td width='100%'>" + sDetail + "</td></tr></table>"
    totalTable = "<table width='1000' border='1' cellpadding='1' cellspacing='1'><tr bgcolor='#DCDCDC'><td width='40%''>Total Statistics</td><td>Total</td><td>Pass</td><td>Fail</td><td>Elapsed</td><td>Pass/Fail</td></tr>"
    result = self.totalContent.split(" ")
    for index in range(len(result[6:])):
    if ((index + 1) % 2 == 1):
    totalTable = "%s <tr><td>%s</td>" % (totalTable,result[6+index])
    else:
    s = result[6+index]
    items = s.split(" ")
    for item in items:
    totalTable ="%s<td>%s</td>" % (totalTable,item)
    sColor = "";
    if (items[2] == "0"):
    sColor = "green"
    else:
    sColor = "red"
    totalTable = "%s <td><center><font style='font-weight:bold;color:green'>%s/</font><font style='font-weight:bold;color:%s'>%s</font></center></td></tr>" % (totalTable,items[1],sColor,items[2])
    totalTable ="%s</table>" % totalTable
    byTagTable = "<table width='1000' border='1' cellpadding='1' cellspacing='1'><tr bgcolor='#DCDCDC'><td width='40%'>Statistics by Tag</td><td>Total</td><td>Pass</td><td>Fail</td><td>Elapsed</td><td>Pass/Fail</td></tr>"
    result = self.byTagContent.split(" ")
    for index in range(len(result[6:])):
    if ((index + 1) % 2 == 1):
    byTagTable = "%s <tr><td>%s</td>" % (byTagTable, result[6+index])
    else:
    s = result[6+index]
    items = s.split(" ")
    for item in items:
    byTagTable = "%s<td>%s</td>" % (byTagTable,item)
    sColor = "";
    if (items[2] == "0"):
    sColor = "green"
    else:
    sColor = "red"
    byTagTable = "%s<td><center><font style='font-weight:bold;color:green'>%s/</font><font style='font-weight:bold;color:%s>%s</font></center></td></tr>" % (byTagTable,items[1],sColor,items[2])
    byTagTable = "%s</table>" % byTagTable
    bySuiteTable = "<table width='1000' border='1' cellpadding='1' cellspacing='1'><tr bgcolor='#DCDCDC'><td width='40%'>Statistics by Suite</td><td>Total</td><td>Pass</td><td>Fail</td><td>Elapsed</td><td>Pass/Fail</td></tr>"
    result = self.bySuiteContent.split(" ")
    for index in range(len(result[6:])):
    if ((index + 1) % 2 == 1):
    bySuiteTable ="%s<tr><td>%s</td>" % (bySuiteTable,result[6+index])
    else:
    s = result[6+index]
    items = s.split(" ")
    for item in items:
    bySuiteTable = "%s<td>%s</td>" % (bySuiteTable, item)
    sColor = "";
    if (items[2] == "0"):
    sColor = "green"
    else:
    sColor = "red"
    bySuiteTable = "%s<td><center><font style='font-weight:bold;color:green'>%s/</font><font style='font-weight:bold;color:%s'>%s</font></center></td></tr>" % (bySuiteTable,items[1],sColor,items[2])
    bySuiteTable ="%s</table>" % bySuiteTable
    html = "<html><head><title></title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/></head><body>%s<font size='5' style='font-weight:bold;'>Test Statistics</font>%s<br>%s<br>%s<br><font size='5' style='font-weight:bold;'>具体的log信息请查看附件!!!</font></body></html>".decode('utf-8') % (detailTable,totalTable,byTagTable,bySuiteTable)
    return html
  • 相关阅读:
    小程序登录java后端实现
    Lambda 表达式应用
    java8 实现List对象去重
    实现二:Map<Long, List<Long>> 存放的value 可能含有重复元素,将value 中含有重复元素的Map 重新组合
    实现一:多个List 可能含有重复元素,含有重复元素的集合重新组合
    SpringBoot整合rabbitMq实现消息延时发送
    spring 中aop 切面实战
    MySQL 使用AVG聚合函数时,保留两位小数的方法
    使用Java实现图片等其他文件的本地复制
    Java中初始化集合的方法
  • 原文地址:https://www.cnblogs.com/colin2012/p/7391073.html
Copyright © 2011-2022 走看看