我们做测试的人员们都知道测试完成后,肯定是会生成一个测试报告,那么当我们做自动化的时候,这个自动化报告也可以自动生成吗?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生成测试报告的更多相关文章

  1. Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,

    测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...

  2. python语言(八)多线程、多进程、虚拟环境、unittest、生成测试报告

    一.多线程 进程与线程 进程:进程是资源(CPU.内存等)分配的最小单位,进程有独立的地址空间与系统资源,一个进程可以包含一个或多个线程 线程:线程是CPU调度的最小单位,是进程的一个执行流,线程依赖 ...

  3. unittest(生成测试报告)

    1.先导入HTMLTestRunner模块 见上篇HTMLTestRunner模块生成文档 2.实例如下 (1)单用例文件执行且生成报告 import unittest import HTMLTest ...

  4. Python单元测试框架unittest之生成测试报告(HTMLTestRunner)

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...

  5. Pycharm上python3运行unittest无法生成测试报告

    原文地址https://www.cnblogs.com/yoyoketang/p/7523409.html 前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人 ...

  6. Python 3+selenium+unittest+HTMLTestRunner生成测试报告

    一.下载HTMLTestRunner.py,解压,将它放到 python安装路径的site-packages目录下 https://pan.baidu.com/s/1epWlibxbxWlNoIcxL ...

  7. pycharm 执行unittest 没有生成测试报告

    解决: [第一步] [第二步]

  8. python 生成测试报告并发送邮件

    前言: 使用unittest编写自动化测试脚本,执行脚本后可以很方便看到测试用例的执行情况. 但如果想向领导汇报工作,就需要提供更直观的测试报告. 思路: 使用unittest编写测试用例,HTMLT ...

  9. python接口自动化测试(七)unittest 生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

随机推荐

  1. template-组件封装

    HTML: //:ligit='ligit' 一致 <div id='app'> <template-swiper :ligit='ligit'></template-s ...

  2. 剑指offer系列——62.二叉搜索树的第k个结点

    Q:给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. T: 中序遍历,递归: int count = 0; public ...

  3. POJ - 1845 Sumdiv(分治)

    题意:求$A^{B}$的所有约数之和$mod\ 9901$ 思路:由结论有,一个数$n$进行质因数分解得到$n={p_{1}}^{c_{1}} * {p_{2}}^{c_{2}} *...* {p_{ ...

  4. PHP高级面试题

    在网上看到一些高级php 的面试题目.. 最近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助.内容很多,一点点完善,一步步学习..有些是面试被问,有些是招聘要求, ...

  5. 「JSOI2015」子集选取

    「JSOI2015」子集选取 传送门 看到这个数据范围,就知道肯定是要找规律. 如果把集合看成一个长度为 \(n\) 的 \(01\) 串, \(0\) 表示没有这个元素, \(1\) 表示有这个元素 ...

  6. python学习HTML之CSS

    1.sytle属性设置 . <head> <meta charset="UTF-8"> <title>Title</title> & ...

  7. JDK8源码解析 -- HashMap(二)

    在上一篇JDK8源码解析 -- HashMap(一)的博客中关于HashMap的重要知识点已经讲了差不多了,还有一些内容我会在今天这篇博客中说说,同时我也会把一些我不懂的问题抛出来,希望看到我这篇博客 ...

  8. Introducing .NET 5

    Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the n ...

  9. Deepin-linux下的linux的终端下软件安装和卸载方法

    1.方法一: sudo apt update #最好第一步是它 sudo apt install <package_name> --no-upgrade #安装该package但是不升级. ...

  10. ipfs camp course c demo exercise 1

    目录 aim: my bugs 解决ipfs 的 cros 问题的方法 result final code for c1 aim: 首先咱们把 broswer 和 自己的api 连接起来(要显示出来自 ...