目录

Python之unittest框架的使用包含测试套件,第三方测试报告

Python之unittest框架的使用(包含:测试套件,第三方测试报告)

文章目录

  • **

    nittest框架**

  • **

    测试套件**

  • 三、补充知识点(了解)

  • 四、在测试用例里添加用例描述(在报告里面展示)


前言

分步骤记录unittest框架的基本用法,测试套件的用法。


一、unittest框架

1、使用unittest框架,首先要建立一个测试类,然后这个类要继承unittest模块中的TestCase

https://i-blog.csdnimg.cn/blog_migrate/647db4ec6f5159bd1627f02a08d64452.png

2、在这个TestLogin类中,需要写用例,也就是写函数,一个函数代表一条用例。(注意:测试用例,用test开头)

(1)以一个函数举例

https://i-blog.csdnimg.cn/blog_migrate/02f691e53a2439652b1a0f378fbb6a90.png

https://i-blog.csdnimg.cn/blog_migrate/8f276242d6f5b099384d6156194c7305.png

3、在以test开头的测试用例(函数)里面,主要写逻辑,以及断言

(1)在这里面。会有断言前的结果和断言后的结果。

断言前的结果,我们必须想办法的去获取。断言后的结果一般我们自己写的。那么断言前的结果,在以后的实际测试中,会遇到后端返回很多数据,我们最需要做的就是在这么多的结果中,怎么去拿到我们想要的数据(结果)。

https://i-blog.csdnimg.cn/blog_migrate/91a003a6e4c1db9d78016b66ed5cd449.png

4、一般写好了测试用例,接着会运行一下有没有问题

(1)直接点击函数左侧的运行符号进行运行

https://i-blog.csdnimg.cn/blog_migrate/b37426234a9da35429caac6c9ed09b64.png

(2) 入口函数进行运行

https://i-blog.csdnimg.cn/blog_migrate/ae4c8a7a2f0c41f1938ae8cd2800dbea.png

5、断言(对实际的结果和预期的结果进行断言)

在这里断言一般有两种方式:

第一种使用Python自己的断言方式(基本是不用)

1、使用python中的关键字assert来断言(不推荐)

assert excepted == result # 如果条件不相等:抛出断言异常

第二种使用unittest里面的断言方式(常用)


二、测试套件

步骤1:创建一个测试套件

suite = unittest.TestSuite()

解释:在这里TestSuite()就是一个测试套件,通俗一点就是来装用例的一个容器

步骤2:加载测试用例

解释:这个步骤相当于,我先要找到测试用例,再装到容器里面去(注意:这里是有两个步骤,先发现用例,再收集(也就是加载))

通过路径进行加载(加载器,unittest.TestLoader)

(1)先创建一个测试加载器

load = unittest.TestLoader()

解释:load是TestLoader这个类的实例化对象,使用这个加载器里面的函数,这个函数是专门用来发现测试用例的

(2)发现(找到)测试用例

load.discover(测试用例所在的路径)

例如:# load.discover(r’C:\project\py47\code_demo\testcases')

注意:这个路径的尾部截止是一个py文件夹,而不是py文件。也就是我们要拿到py文件的上一级,如果拿到了py文件,那么系统就会报一些错误。

步骤3:把测试用例装到测试套件里面

注意:在这里要使用步骤1里面的创建好的测试套件,以及步骤2中的发现用例

suite.addTest(load.discover(r’C:\project\py47\code_demo\testcases’))

步骤4:创建一个测试执行器

runner = unittest.TextTestRunner()

解释:TextTestRunner是一个类,runner是这个类的对象

步骤5:执行测试用例

注意:这里执行用例是这个套件里面所有的测试用例

runner.run(suite)  #对象调用了TextTestRunner类中的函数

步骤6:加入测试报告

注意:这里需要导入关于测试报告的模块(一般使用第三方写的)

例如:

使用第三方包BeautifulReport

需要先安装:pip install BeautifulReport

**from BeautifulReport import BeautifulReport

runner=BeautifulReport(suite)

runner.report(description=‘测试报告’)**

解释:BeautifulReport 是一个类,runner是这个类的实例化对象。report()是这个类里面的函数

总结:步骤1到步骤6的关系:

https://i-blog.csdnimg.cn/blog_migrate/3d5679153f6a5fcdc4ba26b3520c0934.jpeg


三、补充知识点(了解):

1、关于测试报告的生成

使用unittest框架里面自带的报告unitetstreport

从unittestreport模块导入TestRunner这个类

from unittestreport import TestRunner

1、创建一个测试执行器

runner = TestRunner(suite, templates=2)

2、执行测试套件中的所有用例

runner.run()

解释:templates是选择这个函数中模板的参数,不同的数值,所选择的模板不一样。

2、另外两种加载测试用例的方法

1)通过用例模块进行加载(不常用)

suite = unittest.defaultTestLoader.loadTestsFromModule(模块)

举例:

#导入模块

from code_demo.testcases import test_login

suite = unittest.defaultTestLoader.loadTestsFromModule(test_login)

注意1: defaultTestLoader是TestLoader这个类的对象。  源码里面defaultTestLoader = TestLoader();loadTestsFromModule()这是个函数。这里是:对象调用函数。

注意2: 这里对用例模块的加载,模块是指:例如:登录成功,登录失败。这种py文件(也可以这么说:是py文件夹里面的py文件)

2)通过测试类收集(不常用)

unittest.defaultTestLoader.loadTestsFromTestCase(测试类)

举例:

导入测试类

from code_demo.testcases.test_demo import TestDemo

suite = unittest.defaultTestLoader.loadTestsFromTestCase(TestDemo)

注意:这个就相当于py文件里面的某个类名

一个完整版的演示:

(1) fun1文件定义了2个函数(用于进行测试)

https://i-blog.csdnimg.cn/blog_migrate/ee3e363921322a6693bbfa15de6d5f9d.png

(2)testcase文件夹里面放入测试用例文件(文件当中定义一个类,类里面有2条用例(也就是以test开头了2个函数))

https://i-blog.csdnimg.cn/blog_migrate/f52f3ab0fcfbf8fb2a47d345f81cedda.png

(3)main文件里面主要是用来加载测试用例,以及执行测试用例的入口

https://i-blog.csdnimg.cn/blog_migrate/ac23002623b39ac319e97ce49857cec4.png

(4)report测试报告

https://i-blog.csdnimg.cn/blog_migrate/13e6d54f77cdd1ddfbdf422f5061ddb1.png

如果用例失败,这个会有失败的明显

https://i-blog.csdnimg.cn/blog_migrate/9a123c8f89ec2ad632f4160064af81e2.png


四、在测试用例里添加用例描述(在报告里面展示)

举例:

https://i-blog.csdnimg.cn/blog_migrate/ccbf868c911b2ce6a16ff191c8a1888a.png

https://i-blog.csdnimg.cn/blog_migrate/df0784c9198077f7905b128598d46dc3.png

https://i-blog.csdnimg.cn/blog_migrate/9f29edf551c1af6567a9ff567ee74423.png

https://i-blog.csdnimg.cn/blog_migrate/fa84e019d12471986caa6c495401aa0a.png


总结

平时用测试套件很容易忘记,在这里详细的分步骤解析一下具体的用法。以及第三方测试报告的用法。