Python 中 unittest 单元测试框架中需要知识点

  现在正在使用 unittest 框架,我们来记录下这个框架的知识点;

  unittest 框架:我们在写接口用例的时候,会继承 unittest 当中的 TestCase 的类和方法,私有方法除外,来识别以 test_ 开头的测试用例,unittest 相当于是一个包,我们来使用包里面的工具;

1. 单元测试的概念

  1. 测试不是来测试Java写的模块、函数、类
  2. 而是测试代码输入和输出,比对是否正确
  3. 往往单元测试, 是有开发来写, 用于测试自己写的模块、函数、类是否正确
  4. 有的一些单元测试任务, 是由测试人员来写
  5. 单元测试, 是一个极其强大的测试断言工具

2. 单元测试的作用

对代码中的函数、类、模拟进行测试
辅助进行接口测试,将预期结果与实际结果进行对

3. 运行 unittest 的时候, 我们就调用父类的 main() 方法来运行

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

4. unittest 框架中,如何测试多条用例?用例执行顺序?如何记录判断接口的成功与失败的用例

  • unittest 框架会把以 test_ 开头的实例方法识别为用例, 同时会自动执行
  • 如果不是 test_ 开头的方法, 那么不会被当做用例当自动执行
  • 以test_开头的实例方法名称的 ASCCI 码数值,从小到大的顺序执行
  • 使用 try..except.... 来记录成功与失败的用例总数
  • 测试用例失败后需要主动抛出异常,增加日志文件,记录测试用例的结果
  • 执行的总用例数为: 所有以test_开头的实例方法总数
  • 失败的用例总数为, 抛出异常的实例方法总数

5. unittest 框架中为我们提供了强大的断言方法,我们来记录下常用的几个

self.assertEqual():断言实际结果与预期结果是否相等;第一个参数为期望值,第二个参数为实际值,第三个参数 msg 为断言失败之后的报错信息
self.assertIn():成员运算第一个表达式是否是第二个表达式的成员
self.assertTrue():断言这个表达式是否为True,如果为True则成功,不为True则失败
self.assertIsInstance():断言第一个是否是第二个参数的实例(判断是否是list类型)
self.assertIsNone():断言字段obj数值不为空
self.assertIs():判断两个对象是不是同一个对象
self.assertRaises():抛出异常

import unittest

class TestClass01(unittest.TestCase):

    def test_case01(self):
        # 把鼠标放在实例方法名上来运行用例, 那么只会运行当前一条用例
        # assertTrue 判断是否为真,isupper(译:一字欧喷)是否全部为为大写
        self.assertTrue("PYTHON".isupper(), msg="测试是否为大写失败")

    def test_case02(self):
        name = "北辰"
        names_list = ["休想", "默", "生如花开", "蝶影飞雪", "北辰"]
        # 成员运算第一个表达式是否是第二个表达式的成员
        self.assertIn(name, names_list)

    def test_case03(self):
        one_var = [100, 200]
        # assertIsInstance 判断这个函数是否为指定类型 列表
        self.assertIsInstance(one_var, list)    # (译:额赛特.疑似因斯ten死)

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

6. Python 接口自动化用例执行之前需要使用:setUp、tearDown;setUpClass、tearDownClass

setUp :每个用例执行之前调用
tearDown :每个用例执行之后调用
setUpClass :(译:赛特阿婆.克拉斯)所有用例执行之前调用 TestCase 中 setUpClass 类方法
tearDownClass:(译:缇欧当.克拉斯)所有用例执行之后会调用 TestCase 中 tearDownClass 类方法

通常我们会使用 setUpClass 、tearDownClass 需要定义为类方法,如果不定义就没有所有用例之前之后调动的这种特性;

7. Python 中常用的装饰器

@classmethod:定义为类方法(译:卡拉斯.满涩的)
@staticmethod:定义为静态方法(译:斯达特克.满涩的)

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!******* 

原文地址:https://www.cnblogs.com/shouhu/p/12155524.html

时间: 2024-10-04 00:05:16

Python 中 unittest 单元测试框架中需要知识点的相关文章

Python+Selenium ----unittest单元测试框架

unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做"PyUnit",是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了.       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例.要了解

python中unittest单元测试框架-加载测试用例、运行测试用例、生成测试报告

unittest中加载测试用例的方法很多,这里先介绍addTest中添加用例-测试类的实例的方式: import os import unittest # 创建suite对象 suite = unittest.TestSuite() # 第一种方法:一个一个添加用例 from class1228_unittest_loader.test_cases.test_setup import * # 添加测试用例到suite套件里面:用例-测试类的实例 suite.addTest(TestSetUp('

关于unittest单元测试框架中常用的几种用例加载方法

unittest模块是Python自带的一个单元测试模块,我们可以用来做单元测试.unittest模块包含了如下几个子模块: 测试用例:TestCase 测试集:TestSuite 加载用例:TestLoader 执行用例:TextTestRunner 首先编写一个简单的加减乘除数学方法类: class MathCalculate: ''' 加减乘除的计算类 ''' def __init__(self, first_num, second_num): self.first_num = first

unittest单元测试框架中的参数化及每个用例的注释

相信大家和我有相同的经历,在写自动化用例脚本的时候,用例的操作是一样的,但是就是参数不同,比如说要测一个付款的接口,付款有很多种渠道,另外只有部分参数不一样,如果我们一个渠道一个渠道的写,在unittest里面就要写很多个用例脚本,而且大部分内容都是一样的,这样脚本就显得比较冗余了. 我们可以把不同的参数写在一个列表中,然后循环列表获取参数执行用例,python有第三方模块parameterized来实现循环列表获取参数执行用例的功能. 另外,之前写用例脚本,每个用例下面增加三引号注释,可以增加

利用Python的unittest单元测试框架的discover方法批量执行脚本用例

1.在用Python自动化时,执行单个脚本用例那都是so easying当脚本用例不断地增多时,那就蒙蔽了,一个个来跑到什么时候才跑完,所以discover方法作用就出来,废话不多,小编直接上代码了,如有疑问,可以咨询小编 #!/usr/bin/python# -*- coding: utf-8 -*-from selenium import webdriverimport time,osfrom selenium.webdriver.common.action_chains import Ac

Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去掉验证码 1.手动在请求中添加cookies信息 1 url = "http://www.baidu.com" 2 driver = webdriver.Firefox() 3 driver.get(url) 4 time.sleep(3) 5 #添加cookies的方式 6 7 c1 =

Python基础入门-unittest单元测试框架

unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试. 目录 一.unittest模块的各个属性说明 二.使用unittest框架编写测试用例思路 三.使用unittest框架编写测试用例实例 一.unittest模块的各个属性说明 先来聊一聊unittest模块的各个属性,所谓知己知

15. Unittest单元测试框架的介绍与使用

?什么是单元测试 在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.在过程化编程中,一个单元就是单个程序.函数.过程等:对于面向对象编程,最小单元就是方法,包括基类(超类).抽象类.或者派生类(子类)中的方法. 上面这段内容摘自维基百科.笔者在入职的时候,一直搞不明白什么是单元测试.即使搜了很多资料,也还是搞不明白.一直到接触代码的时候,才对单元测试有了一个大概的认识.当然以

第 6 章 unittest 单元测试框架 - Selenium3 自动化测试

第 6 章 unittest 单元测试框架 单元测试是一项对技术要求很高的工作,只有白盒测试人员和软件开发人员才能胜任但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的「自动化」测试. 1.提供测试用例组织和执行在 Python 中,我们编写的代码可以定义类.方法和函数,那么如何定义一条「测试用例」?如何灵活地控制这些「测试用例」的执行?单元测试框架会告诉我们. 2.提供丰富的断言方法当我们进行功能测试时,测试用例需要有预期结果.当测试用例的执行结