Python测试框架unittest
Python测试框架unittest
一、unittest框架
(1)unittest特点
1、python自带的单元测试框架,不需要安装
2、用例执行互不干扰
3、提供不同范围的setUp和tearDown方法
4、提供断言方法
5、可通过discover批量执行所有模块的用例
6、可通过TestSuite灵活组织用例
(2)unittest的几大组成部分
1、TestCase:用例对象,编写测试用例需要继承该类,才拥有TestCase的属性和方法
2、TestSuite:测试集或测试套件,测试用例的集合,用来组织用例,支持嵌套
3、TestLoader:用例加载器,用于想TestSuite中添加用例
4、TextTestRunner:用例执行器,输出文本结果
二、用例编写
1、新建.py文件
2、导入unittest
3、编写Test开头(必须)的类,并继承unittest.TestCase作为测试类,一个模块或者一个接口新建一个类
4、在类中编写test_开头的方法,作为测试用例,一条测试用例新建一个方法
三、用例包裹方法
setUp()/tearDown():每个用例执行前/后执行一次
setUpClass()/tearDownClass():每个测试类加载时/结束时执行一次
四、用例组织及运行
1、新建TestSuite并添加测试用例
#coding=utf-8
import unittest
from test_user_login import TestUserLogin
suite=unittest.TestSuite()
suite.addTest(TestUserLogin('test_user_login_wrong'))
suite.addTest(TestUserLogin('test_user_login_normal'))
# suite.addTests([TestUserLogin('test_user_login_normal'),TestUserLogin('test_user_login_wrong')]) 添加多个用例
unittest.TextTestRunner(verbosity=2).run(suite) #运行顺序为添加到suite中的顺序
2、使用makeSuite
#coding=utf-8
import unittest
from test_user_login import TestUserLogin
suite=unittest.makeSuite(TestUserLogin,'test_user_login_normal') #使用测试类的单条用例制作测试集
#suite=unittest.makeSuite(TestUserLogin) #使用整个测试类制作测试集
unittest.TextTestRunner(verbosity=2).run(suite)
3、使用TestLoader(用例加载器)生成测试集
import unittest
from test_user_login import TestUserLogin
suite=unittest.TestLoader().loadTestsFromTestCase(TestUserLogin)
unittest.TextTestRunner(verbosity=2).run(suite)
4、使用discover(用例发现)遍历所有用例
import unittest
suite=unittest.defaultTestLoader.discover("./")
unittest.TextTestRunner(verbosity=2).run(suite)
5、测试集嵌套
import unittest
from test_user_login import TestUserLogin
suite1=unittest.TestSuite()
suite1.addTest(TestUserLogin('test_user_login_normal'))
suite2=unittest.makeSuite(TestUserLogin)
suite=unittest.TestSuite([suite1,suite2])
unittest.TextTestRunner(verbosity=2).run(suite)
Python测试框架unittest的更多相关文章
- <自动化测试>之<使用unittest Python测试框架进行参数化测试>
最近在看视频时,虫师简单提到了简化自动化测试脚本用例中的代码量,而python中本身的参数化方法用来测试很糟糕,他在实际操作中使用了parameterized参数化... 有兴趣就查了下使用的方法,来 ...
- 用 Python 测试框架简化测试
用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...
- Python单元测试框架unittest使用方法讲解
这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下 概 ...
- 全功能Python测试框架:pytest
python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest. imag ...
- Python单元测试框架unittest之深入学习
前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test c ...
- Python测试框架pytest入门基础
Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...
- 【转载】Python测试框架doctest
原文在这里 :Python测试框架doctest 先记录一下,直接复制粘贴后,排版是乱的,后续再弄.
- python 测试框架nose
python测试框架nose nose不是python自带模块,这里我才用pip的方式安装 pip install nose 这样就完成了安装,然后再确认下是否安装成功了,直接打开cmd输入noset ...
- [转]Python测试框架对比----unittest, pytest, nose, robot framework对比
测试框架 什么是框架? 框架(Framework)是整个或部分系统的可重用设计,框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求 ...
随机推荐
- symbol lookup error /usr/lib/x86_64-linux-gnu/libstdc++.so.6错误的解决办法
当出现 $ apt-get: symbol lookup error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: undefined symbol: _ZNS ...
- win10安装MySQL5.7.31 zip版
因为我之前卸载了安装的(msi,exe)格式的MySQL,现在重新安装zip版的MySQL. 1,下载MySQL MySQL下载地址 : https://dev.mysql.com/downloads ...
- [原题复现]2018护网杯(WEB)easy_tornado(模板注入)
简介 原题复现: 考察知识点:模板注入 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 [护网杯 2018]eas ...
- 精尽MyBatis源码分析 - MyBatis 的 SQL 执行过程(一)之 Executor
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
- Vegas教程分享,制作古装墨迹笔刷开场效果
许多酷炫的古装大片,片头曲介绍人物的时候,都有一种墨迹笔刷的开场效果,那么这个特效如何利用Vegas去做呢? 1.导入素材文件 首先呢,导入相关文件素材到视频制作软件Vegas中,点击页面上方如图1箭 ...
- 借助Mac自带的强大的搜索功能,如何快速搜索打开Tuxera Disk Manager
现在很多小伙伴们在遇到Mac读写NTFS格式硬盘问题的时候,都会选择使用Tuxera NTFS这个磁盘读写工具.因为这款读写工具不仅可以帮助我们进行读写工作,还具有一个磁盘管理工具Disk Manag ...
- 能否安装 CrossOver 上没有的软件
系统兼容软件CrossOver可以像虚拟机一下帮助我们在Mac或者Linux上运行Windows应用程序,快速实现跨平台文件互通,所以我们也称它为类虚拟机. 不需要安装Windows操作系统的Cros ...
- leetcode 108 和leetcode 109 II
//感想:没啥上篇写完了 //思路:对于这道题109来说,就是数组变成了链表,其他没有变,我觉得非常不解,因为我想到的依旧是找中点,用快慢指针来找, 找到以后将链表分成两半,继续递归的去找,我就觉得这 ...
- Python变量引用
>>>a=3 >>>b=a >>>a=4 >>>b >>>3 >>>List1=[1,2,3 ...
- Linux的硬盘挂载
一·前言 我朋友买了一个香港的服务器,可用总容量为60G,实际只有15.4G,剩下的容量需要硬盘挂载.他尝试无果,向我求助.我帮他解决了问题,想回顾一下整理写此随笔. 二·运行环境 Linux系统版本 ...