自动化测试框架1:基础框架搭建

本文详细介绍了使用unittest2框架进行单元测试的步骤,包括测试用例创建、BaseTestCase父类的使用、数据驱动测试、测试报告生成。通过实例展示了测试用例的编写、setUp和tearDown方法的运用,以及setUpClass和tearDownClass类方法的实现。同时,解决了在运行过程中遇到的配置问题,确保测试能够正确执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务分解

主要框架:unittest2

  • 步骤

    1、测试用例
    2、BaseTestCase 把每条测试用例 相同的部分提取出来,放在一个父类中,如何所有的测试用例,都需要打开和关闭测试器
    3、数据驱动测试 把测试数据和操作步骤分离,(如正向测试(正确)、异向测试(错误))一个功能,至少需要测试1种正常情况及多种异常情况
    4、生成测试报告

‼️新建的py文件名要以Demo结尾

编辑代码

技术实验

uniitest2是一个单元测试框架

  • 步骤

    1、导包 import unittest2

    2、创建类,继承自unittest2代码库中的TestCase类,表示当前的类是一个测试用例类

    3、声明一个以test开头的方法,表示是一个测试用例方法,该方法可以直接运行
    (‼️实际运行时运行并没有结果,运行test_case包提示no test were found,搜索结果是python3要加if name == ‘main’: unittest2.main() )
    在这里插入图片描述

    ‼️普通的方法不能直接运行,只有被调用才会被调用

在这里插入图片描述

‼️要想被调用,可以在def test_的方法内进行操作 self.fun()
在这里插入图片描述

4、重写父类中的两个方法
setUp() 表示在每一个测试用例开始前,要做的预置条件
tearDown() 表示在每一个测试用例结束后,做的场景还原,如测试执行中新建的数据删除还原

在这里插入图片描述

‼️setUp、tearDown会在每一个test用例执行时均出现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0XhKzuRJ-1625193845353)(https://secure.wostatic.cn/static/u542FKQZbqTUQ94pHcdVZX/image.png)]

5、通过mian关键字
if__name__ ==‘main’ 表示在当前文件中运行,才会执行下面的语句,在其他文件中运行,下面的语句不能被调用和执行
unittest2.main() 表示调用unittest2的主方法,执行当前类中的所有方法
根据光标位置的不同可以选择执行不用的测试用例,在mian最前最后会执行所有,在具体方法中会执行当前方法

6、重写父类中的setUpClass()和tearDownClass()方法
setUpClass()在测试用例类中所有方法前要做的预置条件
tearDownClass()在类中所有方法后,要做的场景还原工作

在这里插入图片描述

‼️注意:测试用例的执行顺序取决于字母的排列顺序a-z

在这里插入图片描述

实操问题
  • 问题:步骤3直接运行无结果,步骤5不能随光标定位运行单个用例

    解决:第一步:如下图,进入设置,将运行方式改为Unittests

在这里插入图片描述

第二步:选择右上角运行配置,Edit Configurations
在这里插入图片描述

点击➕,add new Configuration—>Python tests—>Unittests,配置完之后点击Apply
在这里插入图片描述

  • 问题:上述操作后现在运行setUpClass跟tearDownClass不起作用了

在这里插入图片描述

怎么取消unittest的运行方式???

解决:通过这个入口把以【Unittests for整个文件名】的运行方式删了

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

综合代码
  • 综合代码
import unittest2

class Unittest2Demo(unittest2.TestCase):
    def test_login(self):
        print('L开头用例1')
        self.func1()
    def func1(self):
        print('用例1中方法2')
    def test_a_test(self):
        print('A开头用例2')
    def setUp(self):
        print('方法头')
    def tearDown(self):
        print('方法尾')

    @classmethod
    def setUpClass(cls):
        print('类头')
    @classmethod
    def tearDownClass(cls):
        print('类尾')

if __name__ == '__main__':
    unittest2.main()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值