五、使用unittest生成HTML报告和xml文件

邮件代发及生成HTML报告二、邮件和HTML插件安装三、邮件配置 四、新建item配置邮件和HTML 五、使用生成HTML报告和xml文件六、构建成功却没发邮件七、中文乱码解决八、生成的HTML报告样式问题九、效果展示
一、的三大概念 1.1 Job
在平台中 , 都是以Job(工程/task)为单位去完成一件事情的 。在使用时 , 都会在管理界面当中新建一个job/item , 在job/item中来构建任务 。
1.2
提供平台 , 集成各种插件来完成一个job 。比如:\linux命令、SVN和Git(、gitee、)代码获取 , 邮件发送、测试报告集成都需要安装对应的插件才能在当中使用这些功能 。
1.3
是通过文件形式来存储和管理数据的 。
所以 , 在安装时 , 要配置的主目录 , 这点我们之前已经配置过了 。此外新建的每一个job的目录都会放在(存放文件和数据以及执行任务成功后的文件和数据)中,相当于在中每个job都有一个独立的目录 , 它们是相互独立的 。
二、邮件和HTML插件安装
进入如下路径:>> >> ,依次安装如下HTML插件和email扩展插件 。
三、邮件配置 3.1 配置管理员邮件地址
进入路径:>> >> 后 , 在页面 输入管理员的邮件地址 。
3.2 配置邮件服务器
如下图配置 , 我这里配置的163邮箱 , 大家配置也可以选择QQ邮箱 , 在凭证处配置你的邮箱登录账号和邮箱授权码即可 , 不会可以百度 。配置完保存 。
四、新建item配置邮件和HTML
准备条件:
①新建一个item,我这里选择自由风格;
②选择代码管理工具 , 我这里选择Git;
③选择构建步骤 , 我这里使用 , 因此配置的命令行: 相对工作空间的路径文件.py
4.1 配置邮件代发
接下来我们配置邮件的详细信息 , 如图点击Post-build-选择 Email
选择之后 , 按照下面进行配置 。
关于-type可以选择text或者HTML , 我们这里使用HTML , 因为我们后面发送邮件使用的是HTML模板 。默认主题、默认内容都可以改的 。
查看帮助命令:
我的模板的代码如下 , 大家有兴趣可自取 。模板记得先上传仓库 。
Unittest Report

项目${PROJECT_NAME} 用例执行结果如下:测试人员XXX用例总数${TEST_COUNTS,var="total"}构建编号${BUILD_NUMBER}成功用例${TEST_COUNTS,var="pass"}构建结果${BUILD_STATUS}失败用例${TEST_COUNTS,var="fail"}构建地址${BUILD_URL}跳过用例${TEST_COUNTS,var="skip"}HTML报告地址${PROJECT_URL}/HTML_20Report/

4.2 配置HTML报告
接下来我们配置HTML报告 , 点击Post-build-选择 HTML  , 设置如下,路径都是选择相对路径:
4.3 配置junit提取xml文件
提取xml文件 , 点击Post-build-选择 JUnit test , 设置如下,路径都是选择相对路径 , 至于为什么我们要配置这个 , 因为只能从xml里面读取数据 , 因此我们的测试报告需要生成一个xml文件才行 。
五、使用生成HTML报告和xml文件
详细信息见代码 , 文件名.py;记得上传仓库 。
#!/usr/bin/env python3# -*- coding: utf-8 -*-# 2022/10/4 20:49# Author : root# File: test_bd.pyfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport unittest,timefrom unittestreport import TestRunnerimport xmlrunnerclass TestUrl(unittest.TestCase):def setUp(self) -> None:br = webdriver.Chrome()self.br=brdef test_1(self):br = self.brbr.get("https://www.baidu.com")br.implicitly_wait(5)self.assertEqual(br.title,"百度一下 , 你就知道",msg="断言标题相等")time.sleep(2)def tearDown(self) -> None:self.br.quit()if __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(TestUrl("test_1"))runner = TestRunner(suite,filename="百度URL测试报告.html",report_dir="./report",title="百度URL测试报告",tester="xx",desc="URL测试报告",templates=2)runner.run()suite = unittest.TestSuite()suite.addTest(TestUrl("test_1"))runner_xml = xmlrunner.XMLTestRunner(output="./report",outsuffix="baiduurl",verbosity=2)runner_xml.run(suite)