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. jumpserver部署使用

    一.简介 前面我们聊到了openvpn的部署和使用,它能够实现从互联网通过openvpn连接到公司内网服务器,从而进行远程管理:但openvpn有一个缺点它不能记录哪些用户在内网服务器上操作了什么,拥 ...

  2. BP神经网络算法程序实现鸢尾花(iris)数据集分类

    作者有话说 最近学习了一下BP神经网络,写篇随笔记录一下得到的一些结果和代码,该随笔会比较简略,对一些简单的细节不加以说明. 目录 BP算法简要推导 应用实例 PYTHON代码 BP算法简要推导 该部 ...

  3. RS485转以太网的概述和应用领域

    如今随着物联网技术的不断发展,各种接口更新换代的速度非常的快,RS485转以太网的主要作用就是提供串口转TCP/IP网络接口的功能,它可以将RS232/485/422串口转换成TCP/IP网络接口,实 ...

  4. 简单粗暴套娃模式组json发送https请求

    各位童鞋大家好,向来简单粗暴的铁柱兄给大家来玩一手套娃模式来组Json数据,不说别的,无脑套. 当然,这一手比较适合临场用一下,若长期用的话建议搞一套适用的框架,只管set就好了.话不多说开始上课. ...

  5. Django项目登录注册系统

    Django项目之个人网站 关注公众号"轻松学编程"了解更多. Github地址:https://github.com/liangdongchang/MyWeb.git 感兴趣的可 ...

  6. git使用心得体会

    序言:身为软件工程的学生却一直没有接触Git,实在有些羞愧.得益于孟宁老师的课程,让我对Git有了初步的认识.同样借由此次机会正式接触Git这款程序员必备工具. 参考文献:https://mp.wei ...

  7. 【USACO】Cow Brainiacs

    题意描述 Cow Brainiacs 求 \(n!\) 在 \(b\) 进制表示下的第一位非 \(0\) 位的数字. 算法分析 闲话 忙人自动略过 之前做过一道 \(10\) 进制表示下的题目,感觉差 ...

  8. vim-配置教程+源码

    目录 概念 前言 参考链接 vim 优点 vim 配置 vim 配置方法一 vim 配置方法二 自动添加文件头 一般设置 插件 ** 映射 YouCompleteMe 插件 其它配置 概念 前言 放弃 ...

  9. php之cms后台文章管理及显示

    public function index(){ C('TOKEN_ON',false);//关闭表单令牌 读取配置 //查询指定id的栏目信息 $id=I('get.id');//类别ID $top ...

  10. R-C3D:用于时间活动检测的区域3D网络

    论文原称:R-C3D: Region Convolutional 3D Network for Temporal Activity Detection(2017) 主要贡献: 1.提出一个包括活动候选 ...