当前位置: 首页 > article >正文

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)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

【2025最新版】字节大牛讲的最全最细的自动化测试全套教程!永久白嫖,拿走不谢,全程干货无废话!逼自己15天内学完,从软件测试基础到项目实战一套全通关!


http://www.kler.cn/a/548141.html

相关文章:

  • 数字内容体验优化策略:全渠道整合与高效转化实践
  • 草图绘制技巧
  • 【linux】Socket网络编程
  • vue使用v-chart的实践心得
  • 【Elasticsearch】keyword分析器
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第二十节】
  • C语言表驱动法
  • 为什么vue3需要对引入的组件使用markRaw?
  • Java NIO基础与实战:如何提升IO操作性能
  • 【openGauss】6.0.0企业版单节点安装,配置刷新
  • 【鸿蒙HarmonyOS Next实战开发】lottie动画库
  • 【Python爬虫(3)】解锁Python爬虫技能树:深入理解模块与包
  • 20250214在ubuntu20.04下使用obs studio录制外挂的1080p的USB摄像头【下载安装】
  • PDF工具,个人作品,免费分享
  • 教程 | 从零部署到业务融合:DeepSeek R1 私有化部署实战指南
  • (rancher) k8s ingress 屏蔽 nginx版本信息
  • 解读 Flink Source 接口重构后的 KafkaSource
  • SIP中常见的服务器类型
  • Win11配置wsl、ubuntu、docker
  • Leetcode 394 字符串解码