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
原文地址:https://www.cnblogs.com/colin2012/p/7391073.html