IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> unittest单元测试框架如何解决自动化需求 -> 正文阅读

[开发测试]unittest单元测试框架如何解决自动化需求

一、背景
在自动化框架中unittest单元测试为了满足实际自动化场景一般会遇到以下问题:

二、问题
1、 如何控制用例执行顺序
unittest测试用例执行顺序

2、如何让多个用例共用setup、teardown
unittest的setup、teardown 会在每个用例执行前 执行一次setup,执行完成后 执行一次 teardown

demo如下:

import unittest


class TestSearch(unittest.TestCase):

    def setUp(self)-> None:
        print('启动执行')


    def test_1_one(self):
        print('第一次')


    def test_2_two(self):
        print("第二次")


    def test_3_three(self):
        print("第三次")

    def tearDown(self) -> None:
        print('结束执行')


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





在这里插入图片描述
考虑到多个测试用例 只需要执行一次setup,teardown ,unittest中有 setupclass,tearDownClass

demo如下:

import unittest


class TestSearch(unittest.TestCase):

    @classmethod
    def setUpClass(self) -> None:
        print('启动执行')


    def test_1_one(self):
        print('第一次')


    def test_2_two(self):
        print("第二次")


    def test_3_three(self):
        print("第三次")

    @classmethod
    def tearDownClass(self) -> None:
        print('结束执行')


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

在这里插入图片描述
注意使用 @classmethod

3、如何跳过用例
unittest.skip详解

4、执行测试用例 – TestSuite(测试套件)
①:unittest.main()
unittest.main()方法会搜索该模块下所有以test开头的测试用例方法,并自动执行它们

执行顺序是命名顺序:会按照数字与字母的顺序为:0-9,A-Z,a-z的顺序来执行

②:构造测试集的不同方法

    #构建测试集并写入模块测试用例名称
    suit =unittest.TestSuite(map(TestSearch,['test_1_one','test_2_two','test_3_three']))

    #构建测试集
    suite2 = unittest.TestSuite()
    #批量添加用例名称至测试集
    suite2.addTests(map(TestSearch,['test_1_one','test_2_two','test_3_three']))

    # 构建测试集
    suite3 = unittest.TestSuite()
    # 单个添加用例名称至测试集
    suite3.addTest(TestSearch('test_1_one'))
    suite3.addTest(TestSearch('test_2_two'))

备注:也可以加其他模块得文件,如B文件里面的类C的用例

suite.addTest(C('test_case1'))

③ 使用TestLoader中的discover方法

#匹配查找测试用例文件,以test*.py开头,并将查找到的测试用例组装到测试套件中

#参数说明 
# start_dir   需要测试的用例文件目录或是模块
#pattern:用例匹配原则,找以test开头的的py文件
#top_level_dir:测试模块的顶层目录,没有就默认None
discover = unittest.defaultTestLoader.discover(start_dir, pattern=’test*.py’, top_level_dir=None)


#实例化TextTestRunner类

runner=unittest.TextTestRunner()

#使用run()方法运行测试套件discover(即运行测试套件中的所有用例)

runner.run(discover)


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:55:05  更:2021-11-30 15:55:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 5:32:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码