python中的unittest库
时间:2020-04-11
本文章向大家介绍python中的unittest库,主要包括python中的unittest库使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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)
原文地址:https://www.cnblogs.com/hherbk/p/12678397.html
- 如何在mac本上安装android sdk
- Fityk-曲线拟合工具
- maven: 打包可运行的jar包(java application)及依赖项处理
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
- 恶心的0.5四舍五入问题
- 乐视金融更名 相关域名引关注
- weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native librar
- hadoop 2.6伪分布安装
- ssh 免密码设置失败原因总结
- C++服务器开发之基于对象的编程风格
- The jQuery UI CSS Framework
- hadoop:将WordCount打包成独立运行的jar包
- Hadoop: MapReduce2多个job串行处理
- UE4新手引导之下载和安装虚幻4游戏引擎
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux(ubuntu)下实现增加/删除文件权限
- Vim中文件编码处理与重新打开乱码文件详解
- Linux常用命令mkdir详解
- CentOS6.5环境下使用rsync增量同步备份文件的方法
- Linux 搭建Git服务器的方法
- Linux中无法远程连接数据库问题的解决方法
- VIM实现文件快速跳转插件详解
- 详解linux usb host驱动编写入门
- CentOS服务器平台搭建mysql主从复制与读写分离的方法
- Centos7中添加、删除Swap交换分区的方法
- Bash中文件描述符的详细介绍
- Linux 块设备驱动代码编写
- ubuntu中终端命令提示符太长的修改方法汇总
- CentOS 6.5 环境实现本地局域网搭建YUM的方法【基于FTP】
- iPhone手机越狱-逆向砸壳-代码注入