【selenium自动化测试入门】 python unittest单元测试框架

news2024/12/23 8:49:48

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


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

免费获取方式:

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

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

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

相关文章

老油条感叹:现在00后真的太卷了....

最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备今年的金九银十的面试计划。 在此展示一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必要的,它几乎涵盖了所有的软件测试技术栈,非常珍…

预训练模型 ---- BERT架构

目录 什么是BERT BERT的架构 BERT的预训练任务 小节总结 BERT的特点 BERT和GPT的区别 笔记参考:【2023最新!4个小时带你重新认识【BERTtransformer】,详解self-attention,翻遍全网找不到比它更详细的了!&#xf…

工作记录:在线 word - 列表

需求&#xff1a;上传 word 文档&#xff0c;在页面的富文本编辑器中展示、编辑后&#xff0c;再导出成 word 格式。 我负责开发列表功能 为什么不用 ul 一开始想用<ul> <li> 去实现列表&#xff0c;但随即发现一些问题&#xff1a; 问题一&#xff1a;word 中的…

知乎+chatgpt炸了!撸点小钱~

大家好&#xff0c;我是五竹。 之前分享了一下&#xff0c;朋友圈的好友如何复制我的玩法利用chatgpt赚点小钱的实战&#xff1a;TMD&#xff0c;被人偷窥了一个月&#xff01; 紧接着我自己最近也在知乎小赚了一笔&#xff01;我以为在知乎上那篇文章的热点就消退了&#xff0…

字节25K就面试这些?简直惊呆我了...

互联网行业竞争是一年比一年严峻&#xff0c;作为软件测试工程师的我们唯有不停的学习&#xff0c;不断提升自己才能保证自己的核心竞争力从而拿到更好的薪水&#xff0c;进入心仪的企业&#xff08;阿里&#xff0c;字节跳动&#xff0c;腾讯&#xff0c;美团&#xff09; 话不…

获取安卓签名文件的MD5值与SHA1码

目录 前言 一、用命令行的方式仅能获取SH1、SHA256 ​编辑 二、用gradle的方式可以获取MD5值 1.打开Android Studio&#xff0c;点击右边的Gradle 2.点击大象&#xff0c;输入查询签名信息的命令 总结 前言 公司App项目要备案&#xff0c;要搜集MD5值与SHA1码&#xff0…

Software List

Ubuntu22 Goldendict Ubuntu安装划词翻译软件Goldendict 单词翻译 句子翻译_ubuntu划词翻译_Bourne_Boom的博客-CSDN博客有道词典长期未更新&#xff0c;由于某些模块不支持的问题已经无法在Ubuntu18.04中使用了。现在介绍另一款强大的翻译软件——Goldendict。1.安装&#…

Android Qcom Display学习(十四)

该系列文章总目录链接与各部分简介&#xff1a; Android Qcom Display学习(零) 本章主要就是学习一下开机logo和开机动画是怎么加载&#xff0c;客制化修改的。 Bootlogo QcomChargerApp.c QcomChargerApp_MonitorChargingQcomChargerAppDisplay_DispBattSymbol(DispImageTy…

SARscape连接图编辑(ConnectGraph)

SARscape连接图编辑ConnectGraph 0 连接图是什么1 什么时候需要编辑连接图2 连接图编辑步骤 0 连接图是什么 连接图ConnectGraph就是差分干涉数据对的关系图。 在SARscape中进行干涉叠加Interferometric Stacking处理&#xff0c;常见的包括PS和SBAS。 首先就要根据数据的空间…

美团小组长薪资被应届生员工倒挂7K,不把老员工当人?

一位美团的小管理爆出&#xff0c;无意中看到了整个部门薪资&#xff0c;本以为自己算比较高的&#xff0c;但看完之后整个人都傻眼了。小组长的职位月薪28K&#xff0c;而手下组员却是35K&#xff0c;当天晚上抽了一包烟也没想明白是为什么。 楼主表示&#xff0c;自己是美团的…

git提交分支

1. git提交分支相关 在本地新建分支&#xff0c;保证和远程分支一样 git checkout -b 分支名如果分支已存在&#xff0c;只需要切换的话 git checkout 分支名提交前先把代码拉下来更新一下&#xff0c;确保不会覆盖别人的代码 git pull origin 远程分支(如果有)解决冲突 g…

低代码平台名声臭,用起来却真香——90%重复工作给你完成喽

一、前言 开发过程中&#xff0c;只是觉得前端后端合起来&#xff0c;有很多冗余信息&#xff0c;被代码一遍遍重复表达&#xff0c;是一件很枯燥、无聊的事情。 这些枯燥的重复工作&#xff0c;完全可以由机器来做&#xff0c;以便解放出我们的时间&#xff0c;来做更有价值的…

智慧班牌源码源,SaaS云平台端、智慧校园管理平台端、家长/教师微信移动端、智慧班牌学生端

智慧电子班牌系统包括&#xff1a;SaaS云平台端、智慧校园管理平台端、家长/教师微信移动端、智慧班牌学生端四大软件平台。 文末获取联系&#xff01; 技术架构&#xff1a; 1、使用springboot框架Javavue2 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语言开发 4、电子班…

xlsx是什么格式

xlsx是什么格式? xlsx是Excel文档的扩展名&#xff0c;其基于Office Open XML标准的压缩文件格式&#xff0c;取代了其以前专有的默认文件格式&#xff0c;在传统的文件名扩展名后面添加了字母x&#xff0c;即.xlsx取代.xls。 xlsx文件是什么格式? xlsx是Excel表格的文件格…

【Linux】-- 基础IO和动静态库

一、系统文件IO 1.文件与读写字符串 对于C文件接口&#xff0c;假如想向特定文件写入字符串&#xff1a; cFile.c #include<stdio.h>int main() {FILE * fp fopen("./log.txt","w");if(NULL fp){perror("fopen error");return 1;}int co…

CC1打不通时的另外一条链CC3

在CC1和CC6中&#xff0c;我们最终弹计算器都是通过Runtime.exec进行调用&#xff0c;从CC3我们要介绍一种不通过Runtime来弹计算器的方法&#xff0c;也就是Java中常提到的动态类加载&#xff0c;动态类加载可以让我们通过一个路径来加载一个恶意类&#xff0c;如果这个恶意类…

照片中对象识别模型YOLOv3在iOS项目中的浅析与使用

YOLOv3模型为苹果开发者官网提供的图形识别对象的CoreML模型&#xff0c;可识别80种对象&#xff0c;并给识别出的对象在图形中的位置和大小。 我们可以直接在官网下载该模型&#xff1a; 机器学习 - 模型 - Apple Developer 然后直接将模型拖入工程中&#xff08;使用的是x…

面试进阶齐飞!Github一天万赞的阿里Java系统性能优化有多牛?

前两天在知乎上看到一个问答&#xff0c;说的是&#xff1a; 一个Java程序员具备什么样的素质和能力才可以称得上高级工程师&#xff1f; 这个问题也引发了我的一些思考&#xff0c;可能很多人会说&#xff0c;“作为高级工程师&#xff0c;基础得过硬、得熟练掌握一门编程语…

信创办公–基于WPS的PPT最佳实践系列 (项目11 绘制流程图)

信创办公–基于WPS的PPT最佳实践系列 &#xff08;项目11 绘制流程图&#xff09; 目录 应用背景操作步骤1、流程图制作过程 应用背景 如果在smartart图形当中没有找到你所需要的图形&#xff0c;想要快速绘制&#xff0c;可以试试以下方法。 操作步骤 以图1为例&#xff0c…

AI智慧安防平台EasyCVR无法成功通过RTMP协议接入是什么原因?

EasyCVR视频融合平台基于云边端协同架构&#xff0c;具有强大的数据接入、处理及分发能力。平台可支持多协议、多类型的前端设备接入&#xff0c;包括市场主流标准协议与厂家私有协议及SDK&#xff0c;如&#xff1a;国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、宇视S…