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)是整个或部分系统的可重用设计,框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求 ...
随机推荐
- appium 常用方法总结
1.appium启动任意的Activity 在手机上启动任意的Activty用driver.start_activity方法,如果启动的Activity不是测试应用程序的一部分,它也将启动该活动的应用 ...
- NUC972当检测到sd卡时,在sd卡驱动中操作gpio开启sd卡的电源,解决sd卡因低电压有时识别不正常的问题
1.根据硬件原理图,找到对应控制sd卡电源的gpio引脚,并在sd卡驱动文件中定义操作改该引脚的宏 2.在sd卡检测函数中,使用glib增加开sd卡电源的操作,如此当sd卡每次被检测到时,驱动中就会自 ...
- python程序基础
高级程序设计语言包括Python.C/C++.Java等 低级程序设计语言包括汇编语言和机器语言 Python是一种解释型语言,但为了提高运行效率,Python程序在 执行一次之后会自动生成扩展名 ...
- MySQL索引背后的数据结构及原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- 我要进大厂之大数据MapReduce知识点(1)
01 我们一起学大数据 老刘今天分享的是大数据Hadoop框架中的分布式计算MapReduce模块,MapReduce知识点有很多,大家需要耐心看,用心记,这次先分享出MapReduce的第一部分.老 ...
- 怎么用在线思维导图Ayoa规划个人任务
在Ayoa的任务板功能中可以对某一任务进行详细设置,例如改变紧急情况/重要程度.添加到我的计划工具.设置开始日期.截止日期等. 图1:任务详情设置 而这里的"我的计划工具"就是一个 ...
- 怎么用CDR来批量导出图片
我们通过CorelDRAW上方菜单栏"布局"中的"插入页面"可以创建多个页面,同时编辑,适合比如书籍排版,杂志排版等等这些需要进行多页面编辑的工作. 图1:CD ...
- 「CSP-S 2019」格雷码
[题目描述] 传送门 [题解] 题目中已经清楚地告诉你怎么用n位格雷码推n+1位格雷码, 直接二叉树模拟即可 注意要使用unsigned long long(如果这道题没有95分部分分,不知道有多少人 ...
- C语言讲义——数组
数组是: 一组数据 一组类型相同的数据 在计算机底层,数组是一块连续的内存 为什么使用数组? 一年12个月 int m1=1, m2=2, m3=3, ... 麻烦 数组示例: #include &l ...
- C语言精华——内存管理,很多学校学习不到的知识~
在编写程序时,通常并不知道需要处理的数据量,或者难以评估所需处理数据量的变动程度.在这种情况下,要达到有效的资源利用--使用内存管理,必须在运行时动态地分配所需内存,并在使用完毕后尽早释放不需要的内存 ...