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

文章目录

  • 前言
  • 一、unittest框架
  • 二、测试套件
  • 三、补充知识点(了解)
  • 四、在测试用例里添加用例描述(在报告里面展示)
  • 总结

前言

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


一、unittest框架

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

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

(1)以一个函数举例

 

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

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

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

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

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

(2) 入口函数进行运行

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的关系:


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

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个函数(用于进行测试)

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

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

(4)report测试报告

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


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

举例:

 

 


 

 

总结

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

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值