htmlrunner用法_HTMLTestRunner使用详解+饼图美化

本文详细介绍了如何使用HTMLTestRunner进行自动化测试报告的生成,包括两种加载测试用例的方法,并展示了如何对测试报告进行美化,尤其是添加饼图的步骤。通过修改HTMLTestRunner源码,实现了展示测试结果的环形图,直观地呈现了测试的通过率和失败情况。

2、导包

import HTMLTestRunner

二、加载测试类

1、第一种方法:

使用discover()加载测试用例

def run_suite(self):

report_path = r'C:\Users\admin\PycharmProjects\登陆接口自动化\report'

timer = time.strftime("%Y-%m-%d_%H_%M-%S")

report_file = report_path + "\\" + timer + ".html"

#方法一:使用unittest.defaultTestLoader.discover()方法加载测试类

discover = unittest.defaultTestLoader.discover(test_case_dir,pattern='test_login*.py')

#执行用例

with open(report_file,'wb') as f:

runner = HTMLTestRunner(stream=f,title="登陆接口自动化报告",description="登陆用例")

#方法一:

runner.run(discover)

2、第二种方法:

使用suite.addTests(unittest.TestLoader().loadTestsFromTestCase())加载测试用例

def run_suite(self):

report_path = r'C:\Users\admin\PycharmProjects\登陆接口自动化\report'

timer = time.strftime("%Y-%m-%d_%H_%M-%S")

report_file = report_path + "\\" + timer + ".html"

#方法二:使用suite.addTests()方法加载测试类

suite = unittest.TestSuite()

suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestLogin))

#执行用例

with open(report_file,'wb') as f:

runner = HTMLTestRunner(stream=f,title="登陆接口自动化报告",description="登陆用例")

#方法二:

runner.run(suite)

三、生成测试报告

生成报告如下:

四、添加饼图美化

由于HTMLTestRunner是html文件,想要添加饼图或者柱状图,需要了解些html的基础知识,以下是我结合网上资料学习后修改好的HTMLTestRunner.py文件,执行效果如下:

详细修改步骤如下:

1、搜索饼图html代码

2、修改HTMLTestRunner源码

找到如下位置,新增div内容:

3、找到heading样式,新增内容如下:

4、增加饼图样式,内容如下:

5、把第1步搜索的饼图代码放到REPORT_TMPL的最后面如下:

REPORT_TMPL = """

Show

Summary

Failed

All

Test Group/Test caseCountPassFailErrorView

%(test_list)s

Total%(count)s%(Pass)s%(fail)s%(error)s 

var dom = document.getElementById("container_tu");

var myChart = echarts.init(dom);

var app = {};

app.title = '环形图';

var option = {

tooltip: {

trigger: 'item',

formatter: "{a}
{b}: {c} ({d}%%)"

},

color:['red','#c60','#6c6','#bbe2e8'],

legend: {

orient: 'horizontal',

x: 'left',

data: ['失败', '未通过', '通过', '总用例']

},

series: [{

name: '访问来源',

type: 'pie',

radius: ['30%%', '70%%'],

avoidLabelOverlap: false,

label: {

normal: {

show: false,

position: 'center'

},

emphasis: {

show: true,

textStyle: {

fontSize: '30',

fontWeight: 'bold'

}

}

},

labelLine: {

normal: {

show: false

}

},

data: [

{

value: %(error)s,

name: '失败'

},

{

value: %(fail)s,

name: '未通过'

},

{

value: %(Pass)s,

name: '通过'

},

{

value: %(count)s,

name: '总用例'

}

]

}]

};

if(option && typeof option === "object") {

myChart.setOption(option, true);

}

""" # variables: (test_list, count, Pass, fail, error)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值