Python+Selenium+Unittest 之Unittest1--简介

本文介绍了Python内置的Unittest框架,包括其组成部分(TestCase、TestFixture、TestSuite和TestRunner),并演示了如何定义和执行测试用例,以及setUp/tearDown方法的作用和断言的使用。
摘要由CSDN通过智能技术生成

        Unittest属于是一种单元测试框架,主要用于对代码中写好的单元内容进行验证,比如写好一个函数,可以使用unittest去进行验证该函数的代码逻辑是否有问题,对于自动化来说,可以去检验每条用例的内容是否符合预期。

        Unittest是python的一个内置库,我们在使用时直接导入该库即可,在Unittest中主要由4部分组成,分别为:TestCase(测试用例)、Test Fixture(可以用来设置用例的前置条件和结束时做一些清理工作,保证不影响其他的用例)、Test Suit(测试集合,在一个测试用例集中可能存在很多用例,Test Suit可以指定我们要执行那几条,或者确定每条用例的执行顺序)、Test Runner(用例执行器,通常用于执行Test Suit中指定好的用例)。

        这里简单随便写一个Unittest的运行框架,说明下简单的运行流程和基本规则。

1、首先第一步我们要导入unittest的库

2、我们需要使用class定义一个类,这里类的名称我们随便填就行,一般就是我们的测试用例集合的名称,比如我们要测登录,这里就可以命名成Login,然后再后面的括号里去填写(unittest.TestCase)来继承unittest类。

3、然后就可以开始写测试用例了,这个就需要再class里在写函数,这里在def后我们的名称必须用小写的test开头来命名才可以

4、然后在def里写测试用例就行

5、然后我们可以在测试用例里加上断言

7、设置需要执行的用例

8、运行用例

import unittest       #导入unittest的框架
class Atmunit_case(unittest.TestCase):       #定义一个class类的名称,并且继承unittest的框架
    def setUp(self):
        print("用例开始了")
    def test_111(self):        #只能以小写test开头,一个def就可以理解成一个测试用例,但是这里的命名必须是以test开头,这个会区分大小写,必须是全部小写的test
        a = 1                  #测试用例内容
        b = 2
        c = a+b
        print("用例1")
        self.assertEqual(c,3)      #这里是断言,括号里填实际结果与预期结果
    def test_222(self):        #定义第二个测试用例
        a = 1                  #用例内容
        b = 2
        print("用例2")
        self.assertEqual(a+b,4)   #断言
    def tearDown(self):
        print("执行结束了")

if __name__ == '__main__':     #运行unittest框架
    suite = unittest.TestSuite()    #把TestSuite实例化
    suite.addTest(Atmunit_case('test_222'))   #调整执行顺序,优先执行test_222用例,括号里需要填写类名(class后面的名字)和对应的函数名(def后面的名字)
    suite.addTest(Atmunit_case('test_111'))   #然后执行test_11用例
    runner = unittest.TextTestRunner()    #实例化TextTestRunner()
    runner.run(suite)       #执行上述用例

        下面这里正好说下unittest的运行方式和对应的不同结果,如果使用的是pycharm工具,代码中有unittest,会默认使用unitest的方式去执行的,这时候在直接执行上述代码时,顺序还是按着先执行test_111再执行test_222,这时候可以编辑下pycharm的python执行方式,不要使用unittest的执行方式,改为使用python的执行方式就行,或者直接点击calss位置的绿色小箭头去运行,具体设置操作见下图,下面可以看下对应的执行结果。

使用python的正常方式操作及运行结果:

或者改为直接点击class前面的小箭头去运行:

使用正常的python方式执行结果:  

使用unittest的方式操作及运行结果:

操作方式:

直接运行项目

或者使用下图的操作方式:

使用unittest的方式的运行结果:

      这个就是一个基本的unittest结构和操作方式了,然后里面的每一步都有更多详细的内容,比如下面实例里的setUp()和tearDown()这个就是流程相关的,setUp()相当于是前置操作,每条用例执行前都需要先执行下,tearDown()是结束操作,每条用例执行完会再执行下tearDown()里的内容,这个就是上面说到的Test Fixture的内容,里面还有些其他的方法后面会专门说到,还有断言下面例子里说的是assertEqual(),是判断两个条件是否相等的方法,这个还有其他的断言方法比如assertIn()、assertTrue()等,这些后面也会专门说到,还有就是最后的执行方式,使用TestSuite()类设置需要执行的用例及顺序,最后使用run()去执行,关于执行顺序这里还有一种方法是直接执行使用unittest.main()执行,这个执行顺序是按着用例名称的ASCII排序运行的,这个后面也会专门说到,大家可以先看下上面的代码,简单了解下unittest的结构和运行的模式,这篇的目的就是对unittest有个大概的了解就行。
 

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘阿童木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值