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. js逻辑程序

    JavaScript 是 Web 的编程语言. 所有现代的 HTML 页面都使用 JavaScript. JavaScript 非常容易学. 本教程将教你学习从初级到高级 JavaScript 知识. ...

  2. 源码都没调试过,怎么能说熟悉 redis 呢?

    一:背景 1. 讲故事 记得在很久之前给初学的朋友们录制 redis 视频课程,当时结合了不少源码进行解读,自以为讲的还算可以,但还是有一个非常核心的点没被分享到,那就是源码级调试, 对,读源码还远远 ...

  3. SpringBoot + Swagger Demo

    Swagger是什么? Swagger 是一个规范且完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.  Swagger 的目标是对 REST API 定义一个标准且和语 ...

  4. 使用scrapy框架模拟登录

    scrapy模拟登录 注意:模拟登陆时,必须保证settings.py里的COOKIES_ENABLED(Cookies中间件) 处于开启状态 COOKIES_ENABLED = True 或# CO ...

  5. [Luogu P1268] 树的重量 (巧妙的构造题)

    题面 传送门:https://www.luogu.org/problemnew/show/P1268 Solution 这是一道极其巧妙的构造题 先做一个约定[i,j]表示从i到j的距离 我们可以先从 ...

  6. ERP的财务凭证的操作与设计--开源软件诞生23

    赤龙ERP财务凭证讲解--第23篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...

  7. 833. Find And Replace in String —— weekly contest 84

    Find And Replace in String To some string S, we will perform some replacement operations that replac ...

  8. JS--遍历对象属性的五种方式

    ES6 一共有 5 种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性). (2)Object.keys(obj) Ob ...

  9. animation关键帧动画语法

    基本声明和用法 @-webkit-keyframes NAME-YOUR-ANIMATION { 0% { opacity: 0; } 100% { opacity: 1; } } @-moz-key ...

  10. maven 笔记2

    maven 中央工厂的位置:D:\dubbo\apache-maven-3.2.5\lib D:\dubbo\apache-maven-3.2.5\lib pom-4.0.0.xml reposito ...