2024常用的 Python 自动化测试框架有哪些?

news2024/11/18 21:29:27

Unittest是Python中最常用的测试框架之一,它提供了丰富和强大的测试工具和方法,可以帮助开发者更好地保证代码质量和稳定性,本文就来介绍下Unittest单元测试框架。

1. 介绍

unittest是Python的单元测试框架,它提供了一套丰富的测试工具和方法,包括测试用例、测试套件、断言、测试装置等。unittest还支持测试执行、测试报告和测试覆盖度等功能。使用unittest可以帮助开发者在开发过程中快速发现和修复代码中的问题,提高代码的质量和稳定性。

2. Unittest核心组件

unittest的原理是基于Python中的面向对象编程思想,提供了TestCase、TestLoader、TestSuite等类和方法来实现自动化测试用例的编写和执行

1)TestCase类

TestCase类是unittest中的一个核心类,它用于编写测试用例。该类提供了setUp()、tearDown()等方法,用于在测试用例的执行前和执行后做一些准备或清理工作。TestCase类还提供了assertEqual()、assertTrue()等方法,用于验证测试用例的正确性。

2)TestLoader类

用于载入测试用例。该类提供了loadTestsFromModule()、loadTestsFromTestCase()等方法,用于从指定的模块或测试用例类中加载测试用例。TestLoader还可以根据模块名称或测试用例类名称等信息自动发现测试用例并加载。

3)TestSuite类

用于管理测试用例。该类提供了addTest()、addTests()等方法,用于添加测试用例。TestSuite还可以根据TestLoader加载的测试用例自动添加测试用例。

4)TestRunner类

用于执行测试用例,并输出测试结果。TextTestRunner提供了run()方法,用于执行测试用例,该方法会返回一个TestResult对象,该对象包含了测试用例的执行情况、测试用例的数量、测试用例的执行时间、测试用例的通过率等信息

5)TestFixtures

测试固件,通过setUp()和tearDown()方法来实现测试用例执行前和执行后的初始化或清除操作。

3. 测试用例的基本结构

unittest测试用例的基本结构包括setUp()、tearDown()、test_xxx()三个方法。

setUp()方法在每个测试用例执行前被调用,用于准备测试数据和环境。

tearDown()方法在每个测试用例执行后被调用,用于清理测试数据和环境。

test_xxx()方法是具体的测试用例,用于验证代码的正确性和性能。

4. Unittest运行方式

1)命令行中运行测试脚本

在命令行中直接运行测试脚本,使用unittest会自动加载并执行测试用例。

命令如下:python test_case.py

其中test_case.py是包含测试用例的脚本文件名。

2) 使用unittest.main()方法

代码实例:

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

3)使用TestLoader和TextTestRunner执行测试用例

代码实例:

import unittest

from test_calculator import TestCalculator

from calculator import Calculator

# 构造测试套件

suite = unittest.TestSuite()

suite.addTest(TestCalculator('test_addition'))

suite.addTest(TestCalculator('test_subtraction'))

# 执行测试用例

runner = unittest.TextTestRunner()

result = runner.run(suite)

# 输出测试结果

print(result.testsRun)

print(result.failures)

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】基本查询(表的增删改查)-- 详解

CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)。 一、Create insert [into] table_name [(column [, column] ...)] v…

硬件工程师入门基础知识(三)钽电容应用(二)

钽电容应用(二) 1.钽电容使用容量选择2.非固体电解质钽电容器使用时应注意的问题2.1 容量和损耗2.2 直流漏电流2.3 使用电压2.4 反向电压2.5 纹波电流2.6 失效率的影响因素2.7 补充说明: 1.钽电容使用容量选择 许多情况下,高能混…

自定义Chrome的浏览器开发者工具DevTools界面的字体和样式

Chrome浏览器开发者工具默认的字体太小,想要修改但没有相关设置。 外观——字体可以自定义字体,但大小不可以调整。 github上有人给出了方法 整理为中文教程: 1.打开浏览器开发者工具,点开设置——实验,勾上红框设…

实现unity场景切换

本文实现两个按键实现场景1和场景2之间的切换 ①首先在unity 3D中创建两个场景,分别为Scene1和Scene2 ②在Scene1中创建一个Button,修改txt内容为“To Scene2”,并在Buttons下创建一个空物体,用于挂载脚本。 脚本Trans Scene.…

自然语言:信息抽取技术在CRM系统中的应用与成效

一、引言 在当今快速变化的商业环境中,客户关系管理(CRM)已成为企业成功的关键因素。CRM系统的核心在于有效地管理客户信息,跟踪与客户的每一次互动,以及深入分析这些数据以提升客户满意度和忠诚度。在我最近参与的一个…

综合实战(volume and Compose)

"让我,重获新生~" MySQL 灾难恢复 熟练掌握挂载卷的使用,将Mysql的业务数据存储在 外部。 实战思想: 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 "mysql-data"用来保存容器中产生的数据。我们需要容器连接到Mysql服务&a…

智慧公厕:打造智慧城市环境卫生新标杆

随着科技的不断发展和城市化进程的加速推进,智慧城市建设已经成为各地政府和企业关注的焦点。而作为智慧城市环境卫生管理的基础设施,智慧公厕的建设和发展也备受重视,被誉为智慧城市的新标杆。本文以智慧公厕源头厂家广州中期科技有限公司&a…

OpenAI要为GPT-4解决数学问题了:奖励模型指错,解题水平达到新高度

原文:OpenAI要为GPT-4解决数学问题了:奖励模型指错,解题水平达到新高度 - 知乎 对于具有挑战性的 step-by-step 数学推理问题,是在每一步给予奖励还是在最后给予单个奖励更有效呢?OpenAI 的最新研究给出了他们的答案。…

LASSO算法

LASSO (Least Absolute Shrinkage and Selection Operator) 是一种回归分析的方法,它能够同时进行变量选择和正则化,以增强预测准确性和模型的解释性。LASSO通过在损失函数中加入一个L1惩罚项来实现这一点。该惩罚项对系数的绝对值进行约束。 基本概念 …

前后端延迟怎么解决

当今互联网应用的发展越来越迅猛,用户对于网站或应用的性能要求也越来越高。其中一个重要方面就是前后端延迟的解决,也就是减少前端与后端之间的通信时间延迟,提高用户体验。本文将详细介绍如何解决前后端延迟的问题。 网络延迟 数据在网络…

springboot项目中使用mybatis作为数据查询框架,如何实现查询sql的日志打印输出?

在Spring Boot项目中使用MyBatis作为数据查询框架时,可以通过配置日志记录器来实现SQL查询的日志打印输出。MyBatis支持多种日志框架,如SLF4J、Log4j2等。这里介绍几种常见的配置方法: 1. 使用application.properties或application.yml配置 …

如何开通微信小程序商城

微信小程序店铺是一种新型的线上商城,可以帮助商家快速搭建自己的线上销售平台,吸引更多的用户进行购买。作为小程序服务商,我们可以帮助商家开通微信小程序店铺,提升他们的线上销售业绩。 1. 进入采云小程序。进入采云小程序首页…

skiplist(高阶数据结构)

目录 一、概念 二、实现 三、对比 一、概念 skiplist是由William Pugh发明的,最早出现于他在1990年发表的论文《Skip Lists: A Probabilistic Alternative to Balanced Trees》 skiplist本质上是一种查找结构,用于解决算法中的查找问题,…

ntp时钟服务安装- 局域网节点时间同步

场景: 一般部署大数据相关应用服务,各个节点之间需要时间同步;内网情况下,很可能各节点之前时间可能不一致,或者过一段时间后 又不一致了 ntp 时钟服务器: 可用于内网各个节点之前得时间同步,安…

C#理论 —— 基础语法、数据类型、变量、常量、运算符、三大结构

文章目录 1. 基础语法1.1 标识符命名规则1.2 C# 关键字1.3 C#注释 2. 数据类型2.1 值类型(Value types)2.2 引用类型(Reference types)2.2.1 对象(Object)类型3.2.2 动态(Dynamic)类…

ubuntu常见配置

ubuntu各个版本的安装过程大差小不差,可以参考,ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境,我的话大概就以下内容,后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…

【踩坑】PyTorch中指定GPU不生效和GPU编号不一致问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 指定GPU不生效问题 解释:就是使用os.environ["CUDA_VISIBLE_DEVICES"] "1"后,后面使用起来仍然是cuda0. 解决:在最开头就使用 import os os.environ[&…

【MySQL | 第一篇】undo log、redo log、bin log三者之间的区分?

undo log、redo log、bin log三者之间的区分? 从 产生的时间点、日志内容、用途 三方面展开论述即可 1.undo log——撤销日志 时间点:事务开始之前产生,根据当前版本的数据生成一个undo log,也保存在事务开始之前 作用&#xf…

springboot+vue网站开发-渲染前端列表页面-缩略图信息

springbootvue网站开发-渲染前端列表页面-缩略图信息!内容比较多。这是第一篇,先给大家展示的是,基础的代码封装,vue前端网站模块的代码展示。 我们使用到了pinia-存储我们请求过来的数据,它是一个状态管理&#xff0c…

非线性优化-高斯牛顿法

在SLAM领域,后端多采用基于非线性优化的方法,来优化位姿和地图点,其中高斯牛顿法的使用频率很高。 求解高斯牛顿法的核心公式: 其中 f 是误差函数,J是误差关于待优化变量的雅可比矩阵。 其中H为海森矩阵&#xff08…