unittest---unittest生成测试报告
我们做测试的人员们都知道测试完成后,肯定是会生成一个测试报告,那么当我们做自动化的时候,这个自动化报告也可以自动生成吗?python当然可以了!
HTMLTestRunner
HTMLTestRunner是Python标准库的unittest模块的扩展。它生成易于使用的HTML测试报告。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载完成后直接放到我们代码文件夹中,也可以放在其他地方,只要我们用的时候,可以直接调用就OK
下载下来后可以先看下其中代码,能否找到一些简单的使用方法。(由于文件过大,这里我只呈现了部分我们需要用到的代码内容)
# 输出到文件
fp = file('my_report.html', 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=fp,
title='My unit test',
description='This demonstrates the report output by HTMLTestRunner.'
) # 使用外部样式表。
# 运行测试
runner.run(my_test_suite)
当然了我们只用这么多就可以生成报告了。
小试牛刀
话不多说,直接就是干,不过写之前我们先理下思路:
1、在unittest中编写测试用例
这里我还是直接调用前面写的通用代码了
# coding:utf-8
import unittest
import requests class Music(unittest.TestCase):
def select(self,name):
url = 'https://api.apiopen.top/searchMusic'
data = {
"name":name
}
r = requests.post(url,data=data)
b = r.json()['result'][0]['title']
return b def test01(self):
b = '断桥残雪'
a = self.select(b)
self.assertEqual(b,a)
print('这个是用例一') def test02(self):
a = '说好不哭'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例二') def test03(self):
a = '芒种'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例三') if __name__ == '__main__':
unittest.main()
2、添加报告路径已经报告内容
通过os模块进行找到当前文件夹,使报告生成当前文件夹中
# 当前文件夹路径
report_path = os.path.dirname(os.path.realpath(__file__))
# 测试报告地址
report_abspath = os.path.join(report_path, "result.html")
fp = open(report_abspath, "wb")
# 报告详情
runner = HTMLTestRunner_cn.HTMLTestRunner(stream=fp,
title=u'自动化测试报告,测试结果如下:',
description=u'用例执行情况:')
3、批量执行用例,导入测试报告内容中
通过unittest中执行用例的方法,来批量执行用例
# 实例化
testunit = unittest.TestSuite()
# 加载用例
testunit .addTests(unittest.TestLoader().loadTestsFromTestCase(Music))
# 执行用例
runner.run(testunit)
4、当然是赶快执行查看报告内容啊
通过用例,我们可以看到这里已经完全生成报告了。

4、添加用例注释,增加报告完整性
当然肯定有的小伙伴们会说,这里不能看到通过的用例都是哪些?这个地方可以解决吗? python这么强大,这个肯定可以解决啊。不过需要我们在用例中添加注释。这样的话就会生成了详细内容。全部代码如下(添加注释后)
# coding:utf-8
import unittest
import requests
import os
from case import HTMLTestRunner_cn class Music(unittest.TestCase):
def select(self,name):
url = 'https://api.apiopen.top/searchMusic'
data = {
"name":name
}
r = requests.post(url,data=data)
b = r.json()['result'][0]['title']
return b def test01(self):
'''
歌名:断桥残雪
'''
b = '断桥残雪'
a = self.select(b)
self.assertEqual(b,a)
print('这个是用例一') def test02(self):
'''
歌名:说好不哭
'''
a = '说好不哭'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例二') def test03(self):
'''
歌名:芒种
'''
a = '芒种'
b = self.select(a)
self.assertEqual(a,b)
print('这个是用例三') if __name__ == '__main__':
# 当前文件夹路径
report_path = os.path.dirname(os.path.realpath(__file__))
# 测试报告地址
report_abspath = os.path.join(report_path, "result.html")
fp = open(report_abspath, "wb")
# 报告详情
runner = HTMLTestRunner_cn.HTMLTestRunner(stream=fp,
title=u'自动化测试报告,测试结果如下:',
description=u'用例执行情况:')
# 实例化
testunit = unittest.TestSuite()
# 加载用例
testunit .addTests(unittest.TestLoader().loadTestsFromTestCase(Music))
# 执行用例
runner.run(testunit)
# 关闭报告
fp.close()
怀着小小的激动去查看了生成的报告,果然没有令我失望,已经完成展现出来了~~

这一篇安静主要介绍了unittest如何生成测试报告,如果哪里有不懂的或者不清楚的可以下方留言,看到后第一时间回复~~~共同进步,共同学习
unittest---unittest生成测试报告的更多相关文章
- Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,
测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...
- python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告
一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...
- unittest(生成测试报告)
1.先导入HTMLTestRunner模块 见上篇HTMLTestRunner模块生成文档 2.实例如下 (1)单用例文件执行且生成报告 import unittest import HTMLTest ...
- Python单元测试框架unittest之生成测试报告(HTMLTestRunner)
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...
- Pycharm上python3运行unittest无法生成测试报告
原文地址https://www.cnblogs.com/yoyoketang/p/7523409.html 前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人 ...
- Python 3+selenium+unittest+HTMLTestRunner生成测试报告
一.下载HTMLTestRunner.py,解压,将它放到 python安装路径的site-packages目录下 https://pan.baidu.com/s/1epWlibxbxWlNoIcxL ...
- pycharm 执行unittest 没有生成测试报告
解决: [第一步] [第二步]
- python 生成测试报告并发送邮件
前言: 使用unittest编写自动化测试脚本,执行脚本后可以很方便看到测试用例的执行情况. 但如果想向领导汇报工作,就需要提供更直观的测试报告. 思路: 使用unittest编写测试用例,HTMLT ...
- python接口自动化测试(七)unittest 生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
随机推荐
- hibernate并发时的事务处理
两个方法 方法一: public void saveTest() { try { System.out.println("saveTest start"); User user = ...
- 浅析PHP页面局部刷新功能的实现小结(转)
转载地址 https://www.jb51.net/article/38901.htm 方法其实挺多的.以前比较常用的是iframe这样来做.现在多了个ajax,所以一般情况下都是用的ajax.第一种 ...
- 使用ssh 初始化git一个空java工程
1:进入git 目录 cd /home/git/repo/ 2:创建一个java工程名 mkdir qft-payment 3:进入工程 cd qft-payment/ 4:初始化空工程 git - ...
- vue中,实现锚点定位及跳转(url不发生变化)
<div class="footer" @click="returnTop"> methods:{ returnTop:function(){ do ...
- Java入门笔记 04-异常处理
一. 异常概述: 1. 异常体系结构图: java.lang.Throwable |-----java.lang.Error:一般不编写针对性的代码进行处理. |- ...
- 给博客页面添加 live2d 小萝莉
添加依赖 在页脚HTML代码的地方添加下面的代码: <script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d ...
- Kindle阅读产品体验报告-随时随地畅享阅读
产品入门-第一份产品体验报告Kindle阅读-随时随地畅享阅读时间:2018/11/18-11/22 Kindle阅读 一.产品概括 (1)体验环境 机型:荣耀8 系统:EMUI 8.0(Andr ...
- spring boot整合Thymeleaf
1.引入thymeleaf: <dependency> <groupId>org.springframework.boot</groupId> <artifa ...
- vue 和 jquery混合使用
有时候只要想到要用的 vue.js 的时候就会惯性的想起用vue-cli手脚架搭建一个项目,但是有时候的业务场景并不适合用vue-cli手脚架,这个时候使用vue+jquery混合使用,把他们的优点结 ...
- JMS消息传递的类型
对于消息的传递有两种类型: 一种是点对点的,即一个生产者和一个消费者一一对应: 另一种是发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进 行接收.