1.unittest框架是python自动化测试的入门框架,它是python自带的一个模块

包含以下几个子模块

测试用例:TestCase

测试集:TestSuite

加载用例:TestLoader

执行用例:TextTextRunner

2.用法:

2.1写用例时,先导入unittest模块

2.2 新建测试方法(方法名要以Test开头)时,需要继承(unittest.TestCase)

import unittest
class TestLogin(unnittest.TestCase):
  pass

2.3测试方法中,可以包含前置后置,前置是setUp,后置是tearDown

def setUp(self):
print("正在准备测试数据") def tearDown(self):
print("测试用例执行完毕。")

2.4写完用例后,运行用例,运行前需要加载用例,这时需要用到加载器: unittest.TestLoader()

testloader = unittest.TestLoader()

2.5查找用例,先写用例路径以及报告路径、命名

dir_path = os.path.dirname(os.path.abspath(__file__))#os.path.split(os.path.split(os.path.abspath(__file__))[0])[0]
case_path = os.path.join(dir_path, 'test_cases')
report_path=os.path.join(dir_path,'kuangjia/report')

ts = str(int(time.time()))
file_name = 'test_result_{}.html'.format(ts)
file_path = os.path.join(report_path, file_name)

2.6 加载用例,有几种方法,一种是:discoer,将用例全部都加载出来

suite = testloader.discover(case_path)

第二种是:loadTestsFromModule,加载模块中的用例

suite = testloader.loadTestsFromModule(test_login)

第三种是:loadTestsFromTestCase,加载指定的测试类

suite = testloader.loadTestsFromTestCase(TestLogin)

  

第四种是:loadTestsFromName,加载测试函数

suite = testloader.loadTestsFromName()

2.7将加载到的用例,合并添加到一个总的测试套件套件

suite_total = unittest.TestSuite()
suite_total.addTests(suite)

  

2.8 运行用例,runner=unittest.TextTestRunner()但是工作中不用,用HTMLTestRunner,需要复制这个文件到项目目录下

# TODO: 一定要使用二进制的方式代开
with open(file_path, 'wb') as f:
# 使用 HTMLTestRunner
runner = HTMLTestRunner(f,
title="史上最帅的测试报告",
description='那是真的帅',
tester='最帅的小马哥')
runner.run(suite_total)

  

2.6到2.7的简化版本:

testloader=unittest.TestLoader()#初始化加载器
suite=unittest.TestSuite()#初始化空测试套件
suite.addTests(testloader.loadTestsFromModule(test_case_01))#往里面加用例
suite.addTests(testloader.loadTestsFromModule(test_case_02)) with open(file_path, 'wb') as f:
# 使用 HTMLTestRunner
runner = HTMLTestRunner(f,
title="前程贷接口测试报告",
description='前程贷接口测试报告',
tester='最帅的小马哥')
runner.run(suite)

  

------------恢复内容开始------------

1.unittest框架是python自动化测试的入门框架,它是python自带的一个模块

包含以下几个子模块

测试用例:TestCase

测试集:TestSuite

加载用例:TestLoader

执行用例:TextTextRunner

2.用法:

2.1写用例时,先导入unittest模块

2.2 新建测试方法(方法名要以Test开头)时,需要继承(unittest.TestCase)

import unittest
class TestLogin(unnittest.TestCase):
  pass

2.3测试方法中,可以包含前置后置,前置是setUp,后置是tearDown

def setUp(self):
print("正在准备测试数据") def tearDown(self):
print("测试用例执行完毕。")

2.4写完用例后,运行用例,运行前需要加载用例,这时需要用到加载器: unittest.TestLoader()

testloader = unittest.TestLoader()

2.5查找用例,先写用例路径以及报告路径、命名

dir_path = os.path.dirname(os.path.abspath(__file__))#os.path.split(os.path.split(os.path.abspath(__file__))[0])[0]
case_path = os.path.join(dir_path, 'test_cases')
report_path=os.path.join(dir_path,'kuangjia/report')

ts = str(int(time.time()))
file_name = 'test_result_{}.html'.format(ts)
file_path = os.path.join(report_path, file_name)

2.6 加载用例,有几种方法,一种是:discoer,将用例全部都加载出来

suite = testloader.discover(case_path)

第二种是:loadTestsFromModule,加载模块中的用例

suite = testloader.loadTestsFromModule(test_login)

第三种是:loadTestsFromTestCase,加载指定的测试类

suite = testloader.loadTestsFromTestCase(TestLogin)

  

第四种是:loadTestsFromName,加载测试函数

suite = testloader.loadTestsFromName()

2.7将加载到的用例,合并添加到一个总的测试套件套件

loader=unittest.TestLoader()

suite_total = unittest.TestSuite()
suite_total.addTests(loader.loadTestsFromModule())

  

2.8 运行用例,runner=unittest.TextTestRunner()但是工作中不用,用HTMLTestRunner,需要复制这个文件到项目目录下

# TODO: 一定要使用二进制的方式代开
with open(file_path, 'wb') as f:
# 使用 HTMLTestRunner
runner = HTMLTestRunner(f,
title="史上最帅的测试报告",
description='那是真的帅',
tester='最帅的小马哥')
runner.run(suite_total)

  

2.6到2.7的简化版本:

#按模块发现用例
suite=loader.loadTestsFromModule(test_register)
suite_total=unittest.TestSuite()
suite_total.addTests(suite)

  

with open(file_path, 'wb') as f:
# 使用 HTMLTestRunner
runner = HTMLTestRunner(f,
title="前程贷接口测试报告",
description='前程贷接口测试报告',
tester='最帅的小马哥')
runner.run(suite)

  

python中的unittest库的更多相关文章

  1. 利用Python中的mock库对Python代码进行模拟测试

    这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下     ...

  2. 【归纳】正则表达式及Python中的正则库

    正则表达式 正则表达式30分钟入门教程 runoob正则式教程 正则表达式练习题集(附答案) 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行 例子:\bhi\b可以用来匹配hi这个单词,且 ...

  3. Python中使用第三方库xlrd来写入Excel文件示例

    Python中使用第三方库xlrd来写入Excel文件示例 这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表 ...

  4. 【转】利用Python中的mock库对Python代码进行模拟测试

    出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/transla ...

  5. Python中的unittest和logging

    今天使用Python的unittest模块写了些单元测试,现记录下要点: 使用unittest的基本格式如下: import unittest class Test(unittest.TestCase ...

  6. python中的turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  7. python 中有趣的库tqdm

    Tqdm 是 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息用法:tqdm(iterator) # 方法1: import time from tqdm import tq ...

  8. Python中的BeautifulSoup库简要总结

    一.基本元素 BeautifulSoup库是解析.遍历.维护“标签树”的功能库. 引用 from bs4 import BeautifulSoup import bs4 html文档-标签树-Beau ...

  9. Python中关于第三方库的补充

    Python语言的强大之处在于它的开源.正是因为它的开源,产生了成百上千的第三方库,涵盖了计算机的几乎所有的方向.第三方库的安装也并不是特别的复杂,通过在cmd中使用pip命令可以安装几乎所有的库,但 ...

随机推荐

  1. 论文解读《Learning Deep CNN Denoiser Prior for Image Restoration》

    CVPR2017的一篇论文 Learning Deep CNN Denoiser Prior for Image Restoration: 一般的,image restoration(IR)任务旨在从 ...

  2. java数据结构-04单循环链表

    单循环链表与单链表的不同是,单循环链表尾结点的next指向第一个结点(或头结点)  代码: 无头结点: public class SingleCircleLinkedList<E> ext ...

  3. HP UNIX 查看 修改IP地址

    # 查看所有IP地址h01_root[/]# lanscan Hardware Station Crd Hdw Net-Interface NM MAC HP-DLPI DLPI Path Addre ...

  4. Django+Celery+xadmin实现异步任务和定时任务

    Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...

  5. php的三元运算符

    简单记录一哈php的三元运算符的用法:    啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行. 若判断成立,则执行第二个表达式,否则执行第三个表达式. 看到好多网友都说的不 ...

  6. MapStruct 解了对象映射的毒

    前言 MVC模式是目前主流项目的标准开发模式,这种模式下框架的分层结构清晰,主要分为Controller,Service,Dao.分层的结构下,各层之间的数据传输要求就会存在差异,我们不能用一个对象来 ...

  7. 面试重灾区——JVM内存结构和GC

    JVM介绍 1. JVM的体系架构(内存模型) 绿色的为线程私有,橘色的为线程共有 2. 类加载器 负责将.class文件加载到内存中,并且将该文件中的数据结构转换为方法区中的数据结构,生成一个Cla ...

  8. 【SpringBoot】13. logback日志记录

    logback日志记录 Spring Boot 1.5.19.RELEASE 1.导入相关jar包 在spring-boot-starter-web 中已经包含 2.添加logback.xml配置文件 ...

  9. 【SpringBoot】08.SpringBoot整合jsp

    SpringBoot整合jsp 1.修改pom文件加入两个坐标jstl标签库和jasper <project xmlns="http://maven.apache.org/POM/4. ...

  10. Shell 筛选符合条件的 ELF 文件

    0 运行环境 本机系统:Windows 10 虚拟机软件:Oracle VM VirtualBox 6 虚拟机系统:Ubuntu 18 1 引言 - 编译过程 我们知道在 CPU 上执行的是低级别的机 ...