unittestreport主要有以下几个作用
接口用例HTML 测试报告生成。
测试用例失败重运行。
发送测试结果及报告到邮箱。
发送报告到钉钉群。
安装unittestreport:
pip3 install unittestreport
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
一、接口用例HTML 测试报告生成
unittestreport 中封装了一个 TestRunner 类,执行完测试用例之后会自动生成测试报告。而且有3种html报告风格可选
编辑
代码中导入TestRunner 模块:
from unittestreport import TestRunner
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
使用举例:
runner = unittestreport.TestRunner(suite,
# 执行人
tester='子衡',
report_dir="reports",
title='api报告',
# 项目描述
desc='充值接口测试报告',
# 指定生成测试报告的模板类型(etc: 1、2、3)
templates=2
)
# 收集用例到套件
suite = unittest.defaultTestLoader.discover('testcases')
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
tester | 执行人员名称 |
report_dir | 指定报告路径(路径文件夹即可) |
title | 生成的测试报告标题 |
desc | 项目描述 |
templates |
报告风格(1,2,3个模版) |
用例报告展示:
编辑
![](/i/ll/?i=25967504c00c4f1aa67af4a92b78bdb1.png)
编辑 二、测试用例失败重运行
unittestreport中提供了测试用例失败重跑机制:
1、方式一
unittestreport模块中的
TestRunner类中的run()方法
编辑
源码介绍:
编辑
thread_count | 多线程执行用例(默认1) |
count | 指定用例失败后重新运行的次数(默认0) |
interval | 指定每次重新执行用例的间隔时间 |
2、方式二
rerun 装饰器,以下是代码展示
from unittestreport import rerun
class TestClass(unittest.TestCase):
@rerun(count=4, interval=2)
def test_case_01(self):
print(111)
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
源码介绍:
编辑
count | 指定用例失败后重新运行的次数(默认0) |
interval | 指定每次重新执行用例的间隔时间 |
三、发送测试结果及报告到邮箱
unittestreport 内部实现了发生测试结果到邮箱的方法,执行完测试用例之后调用发送测试报告的方法即可。发邮件的方法介绍:TestRunner 类中实现了 send_email 方法。值得注意的是,smtp服务器地址,钉钉邮箱不支持个人开启smtp服务,需企业开通。
qq邮箱代码举例说明:
# 发送qq邮件
runner.send_email(
host="smtp.qq.com", #smtp服务器地址,钉钉邮箱不支持个人开启smtp服务
port=465,
user="[email protected]",#发送邮箱
password="111111", #邮箱服务码,需要开启邮箱服务
to_addrs="[email protected]", #接收邮箱
)
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
qq邮箱执行结果举例:
编辑
四、发送报告到钉钉群
首先得添加一个群机器人,在钉钉群-群设置-智能群助手:
编辑
钉钉群机器人代码举例,使用到dingtalk_notice方法:
url = "https://oapi.dingtalk.com/robot/send?access_token" \
"=9ce3725f9f31157002ac3c5e5500f894df95ad7e554473905defecf51db68fdb"
runner.dingtalk_notice(url=url, key='API',secret='钉钉安全设置签名的秘钥')
![](/i/l/?n=23&i=blog/2565209/202303/2565209-20230301180740546-1018943796.gif)
dingtalk_notice方法源码介绍:
编辑
钉钉群机器人执行结果举例:
编辑
标签:qq,unittestreport,测试报告,介绍,生成,TestRunner,用例,邮箱 From: https://www.cnblogs.com/ziheng88/p/17169253.html