news 2026/4/16 14:17:40

Selenium自动化测试入门:python unittest 单元测试框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selenium自动化测试入门:python unittest 单元测试框架

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

unittest又名PyUnit, Python单元测试框架(The Python unit testing framework),简称为PyUnit。自从 Python 2.1 版本后,PyUnit成为 Python标准库的一部分。

为什么需要使用unittest单元测试框架?

当我们写的用例越来越多时,我们就需要考虑用例编写的规范、组织与管理,以便于后期的维护,而python-unittest正是这样一款工具。我们这里用一个简单示例来展示用unittest脚本是什么样子的。

创建计算器类calculator

# Calculator.py class calculator(object): def __init__(self, a, b): self.a = a self.b = b def add(self): return (self.a + self.b) def minus(self): return (self.a - self.b) def multip(self): return (self.a * self.b) def divide(self): return (self.a / self.b)

创建一个简单的单元测试用例

import unittest # 导入unittest 包 from unittest_doc.com.Calculator.Calculator import calculator # 引入需要测试的包 # 所有用例需继承TestCase类或者其子类 class simple_test(unittest.TestCase): def setUp(self): print('@@@初始化test_simple@@@') self.a = calculator(1, 2) def test_add(self): print('---测试用例test_simple add---') self.assertEqual(self.a.minus(), -1, '两值不相等') self.assertEqual(self.a.add(), 3, '两值不相等') self.assertNotEqual(self.a.divide(), 1, '两值不相等') def test_divide(self): print('---测试用例test_simple divide---') self.assertEqual(self.a.divide(), 0.5) def tearDown(self): print('@@@结束test_simple@@@') if __name__ == '__main__': unittest.main()

运行结果:

@@@初始化test_simple@@@ ---测试用例test_simple add--- @@@结束test_simple@@@ @@@初始化test_simple@@@ ---测试用例test_simple divide--- @@@结束test_simple@@@

测试用例由setUp(),test_add(),test_divide(),tearDown() 4个部分组成,它们放在一个继承于unittest.TestCase 的测试类下。

仔细观察输出结果,每个用例运行前都会运行 setUp(),结束后会运行tearDown(),从这里应该能够看出他们两的作用。

setUp()用于测试用例执行前的准备工作。
如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化;用例需要使用web,可以先实例化浏览器;app测试需先要启动app,可先实例化app。

tearDown()用于用例执行之后的善后工作。如关闭数据库连接,关闭浏览器,关闭app。当用例没运行成功是他也会执行。

test_add(),test_divide()测试脚本,必须已test开头或者结尾,如用unittest.main()方法执行用例,需要已test开头。

一个TestCase 的实例就是一个测试用例。测试用例就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。

单元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:59:55

基于PLC的小区恒压供水控制系统设计 (设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC的小区恒压供水控制系统设计 (设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码基于PLC的小区恒压供水控制系统设计 摘要:传传统的二次供水方式耗电量较多, 7K 电压变化, 容易造成二次污染, 不能满足居民对供水…

作者头像 李华
网站建设 2026/4/13 12:37:00

Proteus原理图电气连接详解:图解说明更清晰

Proteus原理图电气连接:那些“画上去就通了”的错觉,正在悄悄毁掉你的仿真 你有没有遇到过这样的场景? 在Proteus里把MCU的PWM引脚和MOSFET驱动芯片的IN引脚用一根线连好,编译通过、仿真启动——结果示波器探针一挂,栅…

作者头像 李华
网站建设 2026/4/16 10:43:50

BAAI/bge-m3在教育领域的应用:作业相似度分析系统实战

BAAI/bge-m3在教育领域的应用:作业相似度分析系统实战 1. 为什么作业查重不能只靠关键词匹配? 你有没有遇到过这样的情况:学生交上来的两份作业,文字几乎完全不同,但核心思路、解题逻辑、甚至错误都一模一样&#xf…

作者头像 李华
网站建设 2026/4/16 11:03:41

手把手教你用Qwen3-ForcedAligner做语音时间戳标注

手把手教你用Qwen3-ForcedAligner做语音时间戳标注 1. 为什么你需要语音时间戳标注? 你有没有遇到过这些情况: 录了一段5分钟的课程讲解,想快速定位“第三章公式推导”出现在哪几秒?做播客剪辑时,反复拖动进度条找“…

作者头像 李华
网站建设 2026/4/16 11:10:28

Phi-4-mini-reasoning实测:128K长文本推理能力惊艳展示

Phi-4-mini-reasoning实测:128K长文本推理能力惊艳展示 1. 引言:轻量模型也能做深度思考? 你有没有试过让一个只有几亿参数的模型,读完一篇30页的技术文档后,准确指出其中三处逻辑矛盾?或者让它一步步推导…

作者头像 李华
网站建设 2026/4/16 12:51:52

Qwen3-ASR-0.6B语音识别:多语言支持实测分享

Qwen3-ASR-0.6B语音识别:多语言支持实测分享 语音识别技术正从实验室快速走向真实办公、教育、内容创作等一线场景。但很多用户仍面临一个现实问题:模型太大跑不动,轻量版又不准,多语言支持更是“纸上谈兵”——标称支持20种语言…

作者头像 李华