欢迎访问生活随笔!

生活随笔

您现在的位置是:首页 > 形式科学 > 计算机科学 > IT网络

IT网络

Unittest测试框架生成可视化测试报告- BeautifulReport。

发布时间:2022-11-21IT网络 小博士
生成报告的风格:在谈论unittest之前,我们先来谈谈几个概念:
TestCase也是一个测试用例。
TestSuite多个测试用例组合在一起,就是TestSuite。
TestLoader用于加载TestCa。

生成报告的样式:unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

在说unittest之前,先说几个概念:

TestCase 也就是测试用例

TestSuite多个测试用例集合在一起,就是TestSuite

TestLoader是用来加载TestCase到TestSuite中的

TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

1.单元测试:

  开发自己测自己写的代码;

2.导入模块unittest:

  import unittest #导入unittest模块

  from BeautifulReport import BeautifulReport #导入BeautifulReport报告模板模块

3.运行一个简单的unittest:

主要是体会一下unittest的写法

1 import unittest #单元测试模块 2 3 class TestCalc(unittest.TestCase): 4 def test1(self): #函数名要以test开头,否则不会被执行 5 self.assertEqual(1,1) 6 7 def test2(self): 8 self.assertEqual(1,2) 9 10 unittest.main() #会运行当前python文件里面的所有测试用例

4.unittest单元测试的基本流程:

  用例集/测试套件:存放测试用例的

  ①.先把所有的测试用例都放到用例集

  ②.运行这些测试用例

  ③.产生报告

suite方式组织测试用例1:

1 import unittest #单元测试模块 2 from BeautifulReport import BeautifulReport as bf #导入BeautifulReport模块,这个模块也是生成报告的模块,但是比HTMLTestRunner模板好看 3 4 class TestCalc(unittest.TestCase): 5 def setUp(self): #每个用例运行之前运行的 6 print('setup是啥时候运行的') 7 8 def tearDown(self): #每个用例运行之后运行的 9 print('teardown是啥时候运行的') 10 11 @classmethod 12 def setUpClass(cls): #在所有用例执行之前运行的 13 print('我是setUpclass,我位于所有用例的开始') 14 15 @classmethod 16 def tearDownClass(cls): #在所有用例都执行完之后运行的 17 print('我是tearDownClass,我位于多有用例运行的结束') 18 19 def testcc(self): #函数名要以test开头,否则不会被执行 20 '''这是第一个测试用例''' #用例描述,在函数下,用三个单引号里面写用例描述 21 self.assertEqual(1,1) 22 print('第一个用例') 23 24 def testaa(self): 25 '''这个是第二个测试用例''' 26 self.assertEqual(1,1) 27 print('第二个用例') 28 29 def testdd(self): 30 '''用例描述3''' 31 print('第三个用例') 32 33 def testbb(self): 34 '''用例描述4''' 35 print('第四个用例') 36 37 suite = unittest.TestSuite() #定义一个测试集合 38 suite.addTest(unittest.makeSuite(TestCalc)) #把写的用例加进来(将TestCalc类)加进来 39 run = bf(suite) #实例化BeautifulReport模块 40 run.report(filename='test',description='这个描述参数是必填的')

使用discover方式组织测试用例:

使用场景:

运行指定目录下的全部测试用例

1 import unittest 2 from BeautifulReport import BeautifulReport #导入BeautifulReport 3 4 if __name__ == '__main__': 5 suite_tests = unittest.defaultTestLoader.discover('.',pattern='*tests.py',top_level_dir=None) #'.'表示当前目录,'*tests.py'匹配当前目录下所有tests.py结尾的用例 6 BeautifulReport(suite_tests).report(filename='百度测试报告', description='搜索测试', log_path='.') #log_path='.'把report放到当前目录下

运行指定测试类中的case,suite方式组织测试用例:

使用场景:

假如有测试类AB,类中各有测试方法1,2,3

假如想仅运行测试类A中方法1,测试类B中的方法3,可以使用这种方式组织测试用例

主要是为了在case量很大时,很方便的调试

1 import unittest 2 import os 3 from BeautifulReport import BeautifulReport as bf 4 from case.subway.test_subway import Subway 5 6 #仅运行指定的case Subway是类名,test_subway_001是类中的测试方法名 7 caseList=[Subway('test_subway_001')] 8 #使用suite组织测试用例 9 suite = unittest.TestSuite() 10 suite.addTests(caseList) 11 #运行并生成测试报告  12 run = bf(suite) 13 run.report(filename='test', description='测试报告')

目录结构:

一个文件夹下有若干测试类,每个测试类正可能又会有若干个测试用例

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

代码结构:

unittest测试框架生成可视化测试报告-BeautifulReport-风君子博客

谢谢二位大神:

Python Selenium 之生成BeautifulReport可视化报告

单元测试unittest及报告生成(两种报告模板)