进阶一:单元测试框架
一、单元测试的定义
1.什么是单元测试

还记不记得我们软件测试学习的时候,按照定义:单元测试就是对单个类或者单个函数进行测试,一般是开发做的,按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。
2.为什么要做单元测试?
(1)单元测试之后,才是集成测试,单个单个的功能模块测试通过之后,才能把单个功能模块集成起来做集成测试,为了从底层发现bug,减少合成后出现的问题。
(2)越早发现bug越好,这样可以早点发现问题,不忽问题累计到后面,如果做错了就要推倒生来,对于时间和经费来说,是非常浪费的!
对于我们测试来说,我们就单元测试是为执行测试用例!
输入测试数据—>输出测试结果
二、unittest框架以及原理介绍
1.unittest框架最核心的四个概念

(1)TestCase:一个testcase的实例就是一个测试用例
(2)TestSuit:多个测试用例集合在一起。TestLoder:是用来加载TestCase到TestSuite中的
(3)TextTestRunner:是用来执行测试用例的
(4)Fixture:测试用例环境的搭建和销毁。测试前准备环境的搭建(setUp),执行测试代码(run)以及测试后环境的还原(tearDown)
我们会一个一个的来讲解,这些理论是怎么跟实践结合起来的。
2.单元测试案例
测试需求一

def login_check(username, password):"""登录校验的函数:param username:账号:param password:密码:return:  dic type"""if 6 <= len(password) <= 18:if username == 'python18' and password == 'lemonban':return {"code": 0, "msg": "登录成功"}else:return {"code": 0, "msg": "帐号或密码不正确"}else:return {"code": 0, "msg": "密码长度在6-18位之间"}

设计用例测试上面的登录校验功能是否正常

# ========================
# @time:2019/10/27 18:23
# @Author:coco
# @File:01_test_case.py
# @software:PyCharm
# =========================def login_check(username, password):"""登录校验的函数:param username:账号:param password:密码:return:  dic type"""if 6 <= len(password) <= 18:if username == 'python23' and password == 'lemonban':return {"code": 0, "msg": "登录成功"}else:return {"code": 0, "msg": "帐号或密码不正确"}else:return {"code": 0, "msg": "密码长度在6-18位之间"}# # 第一步 调用功能函数,传入参数
# result = login_check('python23', 'lemonban')
# excepted = {"code": 0, "msg": "登录成功"}
#
# # 第二步 比对预期结果,和实际结果是否一致
# if result == excepted:
#     print('用例执行通过')
# else:
#     print('用例执行未通过')
# ========================
# @time:2019/10/27 18:23
# @Author:coco
# @File:01_test_case.py
# @software:PyCharm
# =========================import unittest
from login import login_check"""
unittest是python中的官方库
1.设计测试用例入参                      预期结果1   正常登录的用例     正确的账号和密码            {"code": 0, "msg": "登录成功"}2   密码长度低于6位    正确的账号,密码长度低于6位  {"code": 0, "msg": "密码长度在6-18位之间"}3   密码长度大于18位   正确的账号,密码长度低于18位 {"code": 0, "msg": "密码长度在6-18位之间"}4   账号正确,密码有误   正确的账号,错误的密码     {"code": 0, "msg": "帐号或密码不正确"}unittest.TestCase(测试用例类),所有的测试用例类,都是要继承于unittest.TestCase每一条测试用例,就是测试用例类中的一个方法(方法名必须要用test开头)
"""class TestLogin(unittest.TestCase):"""登录校验的测试用例类"""def test_login_pass(self):# 准备测试用例要用到的数据# 入参data = ['python2', 'lemonban']# 预期结果excepted = {"code": 0, "msg": "登录成功"}# 第一步 调用功能函数,传入参数result = login_check(*data)# 第二步 比对预期结果,和实际结果是否一致self.assertEqual(excepted, result)

运行结果:测试通过

运行结果:测试未通过

三、编写测试用例
1.TestCase类编写测试用例
(1)继承unittest里面的TestCase类,继承这个类,写能定测试用例。每个用例都要记得引入fixture,做一些准备以及结束的工作。
(2)编写用例步骤如下:
1)导入unittest模块、被测试文件或其中的类
2)创建一个测试类,并继承unittest.TestCase
3)重写setUp和tearDown方法(如果有初始化条件和结束条件)
4)定义测试函数,函数名以test开头
5)调用unittest.main()方法运行测试用例。
四、测试集合

五、unitest断言介绍
断言方法

六:执行用例&生成报告
1.TextTestRunner的用法
测试用例已经集合完毕,如何来执行用例?
需要用到TextTestRunner,执行测试集合,用到的是TextTestRunner(),用run方法。

day13:Python单元测试(TestCase,TestSuit,TestLoader,TestReport)相关推荐

  1. Python单元测试框架 unittest详解

    一 整体结构概览 unittest原名为PyUnit,是由java的JUnit衍生而来.对于单元测试,需要设置预先条件,对比预期结果和实际结果. TestCase :通过继承TestCase类,我们可 ...

  2. python单元测试工具_Python的单元测试工具——unittest小结

    简介 unittest是Python的内建模块,是Python单元测试的事实标准,也叫PyUnit.使用unittest之前,先了解如下几个概念: test case:测试用例,可以通过创建unite ...

  3. python单元测试示范卷_Python单元测试--Unittest

    原标题:Python单元测试--Unittest 什么是单元测试 单元测试是用来对最小可测试单元(如一个函数.一个类或者一个模块)进行检查和验证.尤其是在对代码进行修改或重构后,可以快速准确的定位出现 ...

  4. python测试脚本实例-Python单元测试实例详解

    本文实例讲述了Python单元测试.分享给大家供大家参考,具体如下: 在Python中进行单元测试需要用到自动单元测试框架PyUnit,Python2.1及其以后的版本都将PyUnit作为一个标准模块 ...

  5. python简单单元测试示范卷,Python单元测试实例详解

    本文实例讲述了python单元测试.分享给大家供大家参考,具体如下: 在python中进行单元测试需要用到自动单元测试框架pyunit,python2.1及其以后的版本都将pyunit作为一个标准模块 ...

  6. python单元测试框架之unittest和pytest的区别

    前言 今天呢笔者想和大家来聊聊Python单元测试框架,我们都知道python单元测试框架有很多,大家平时经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成 ...

  7. 【整理】Python 单元测试框架 - PyUnit

    1 概况 Python单元测试框架(The Python unit testing framework),简称为PyUnit, 是Kent Beck和Erich Gamma这两位聪明的家伙所设计JUn ...

  8. Python单元测试及unittest框架用法实例解析

    例题取用登录模块:代码如下 def login_check(username,password):''' 登录校验的函数:param username:账号:param password: 密码:re ...

  9. Python单元测试--使用装饰器实现测试跳过和预期故障

    Python单元测试unittest中提供了一下四种装饰器实现测试跳过和预期故障.(使用Python 2.7.13) 请查考Python手册中: https://docs.python.org/dev ...

最新文章

  1. mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)
  2. 20210709未来智能实验室收录资料
  3. python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击
  4. python抽象类可以实例化吗,是否可以在Python中创建抽象类?
  5. 使用Nginx在windows和linux上搭建集群
  6. 安卓10侧边返回_安卓 10 细节曝光,这两个功能更好用了
  7. java-DBUtils的练习题
  8. CAN总线波特率的计算方法
  9. Android studio进行文件,代码对比
  10. 前IBM人工智能科学家为你解读AI行业的三大核心素养
  11. echarts地图(中国地图展示各省数据)
  12. deepin虚拟机安装教程
  13. MongoDB windows 局域网连接
  14. vnc以及xfce安装\xrdp连接
  15. php编程输出心形图案_利用php输出不同的心形图案
  16. 学习笔记(16):C++编程FFMpeg(QT5+OpenCV)实战--实时美颜直播推流-推流基于rtsp协议的大华海康相机...
  17. 通过阿里云api获取ecs主机信息
  18. xp 计算机没装网络控制器,XP系统如何安装没有线网卡驱动?
  19. 面向智能网联汽车边缘网络的分布式端-边协同算法
  20. 已被Windows defender smartscreen阻止

热门文章

  1. java 并发问题存在的原因 解决方案
  2. Couldn‘t get size: 0x800000000. Ubuntu18.04安装问题
  3. Unity实现虚拟摇杆
  4. Quartus破解时报错:Current license file does not support the EP4CE10F17C8 device
  5. TCP协议服务端与客户端
  6. 2023实习面试公司【二】
  7. 软件开发大爆炸,被诺基亚错过的Qt正迎来黄金时代
  8. 针对Android APK和API的免费漏洞扫描工具,Yaazhini
  9. 使用AVPlayer自定义支持全屏的播放器(一)
  10. 互联网协议 — UDP — 报文格式