python基础知识点(unittest)
目录:
unittest 单元测试框架
1、写用例: Testcase
2、执行:TestSuite 类 TestLoader 类
3、比对结果(期望值/实际值):断言函数
4、结果:TestTextRunner 类
5、报告:HtmlTestReport 类
一、写用例:TestCase 类:

2、执行:TestSuite 类 ,加载测试用例
suite = unittest.TestSuite()
方法一:
suite.addTest(类("函数名")) addTest要求实例化类,见截图

方法二:
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(类名)),加载测试用例类
suite.addTest(loader.loadTestsFromModule(模块名)),测试用例模块
3、比对结果(期望值/实际值):断言函数
try:
self.assertEqual(预期结果, 实际结果)
except AssertionError as e:
print("错误是:{0}".format(e))
finally:
self.wb.write_back(self.idnum+1, res, test_result)
4、结果:TestTextRunner 类
with open("test_results.txt", 'wb+') as file:
runner = unittest.TextTestRunner(file, verbosity=2),测试结果可读性低 runner.run(suite)# 参数可以是测试用例也可以是测试套件
5、报告:HtmlTestReport 类
with open("test_results.txt", 'wb+') as file:
runner = HTMLTestRunnerNew.HTMLTestRunner(file,参数)
runner.run(suite)
6、将测试用例放在excl里面读取,并把值写回到excl里面 ,思路:
openpyxl import load_workbook
wb = load_workbook(表名)
sheet = wb[sheet名]
思路:1、定义write_back函数,2、在testcase引入函数,实例化,在断言处使用,因为:断言处,对比的实际结果和测试结果
3、testsuite里面执行测试用例。增加参数等操作
do_excle.py文件里面
def write_back(self, row, ActualResult, TestResult):
wb = load_workbook('test_data.xlsx')
sheet = wb['test_data']
sheet.cell(row, 6).values = ActualResult
sheet.cell(row, 7).values = TestResult
wb.save('test_data.xlsx') test_case.py里面
import write_back方法:
实例化:
self.wb = Doexcle()
try:
self.assertEqual(self.expected, res) # 方法一:断言函数的调用,调用父类里面的断言函数
TestResult = 'PASS'
except AssertionError as e:
TestResult = 'FALL'
print("测试出错了,错误是:{0}".format(e))
raise e # 抛出错误
finally:
self.wb.write_back(id+1, res, TestResult)
test_suite 执行用例
二、数据处理,需要把excl里面的数据处理成数组的形式,方便取之
一、列表嵌套列表:
test_data = []
# for i in range(2, 7): # 行
# sub_data = []
# for j in range(1, 6): # 列
# sub_data.append(sheet.cell(i, j).value)
#
# test_data.append(sub_data)
# return test_data
二、列表嵌套字典:(此方法掌握)
for i in range(1, 7):
#
# sub_data={}
# sub_data['id'] = sheet.cell(i, 1).value
# sub_data['title'] = sheet.cell(i, 1).value
# sub_data['param_a'] = sheet.cell(i, 1).value
# sub_data['param_b'] = sheet.cell(i, 1).value
# sub_data['except'] = sheet.cell(i, 1).value
# test_data.append(sub_data)
#
# print(test_data)
三、列表嵌套字典:此方法最好掌握
wb = load_workbook(data)
sheet = wb[sheet]
header = [] #取出key的值,放在列表里
for i in range(1, 6):
header.append(sheet.cell(1, i).value)
print(header) test_data = []
for i in range(2, 8):
sub_data = {} # 定义字典,
for j in range(1, 6): sub_data[header[j-1]] = sheet.cell(i, j).value # 每一行列值循环取出,key= value值
test_data.append(sub_data) # 字典append到列表里 print(test_data)
python基础知识点(unittest)的更多相关文章
- 最全Python基础知识点梳理
本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾.python的详细语法介绍可以查看官方编程手册,也有一些在线网站可以学习 python语言 ...
- Python基础知识点小结
1.Python基础知识 在Python中的两种注释方法,分别是#注释和引号(''' ''')注释,#注释类似于C语言中的//注释,引号注释类似于C语言中的/* */注释.接着在Python中 ...
- Python基础知识点总结
Python基础知识与常用数据类型 一.Python概述: 1.1.Python的特点: 1.Python是一门面向对象的语言,在Python中一切皆对象 2.Python是一门解释性语言 3.Pyt ...
- python 基础知识点整理 和详细应用
Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...
- Python基础知识点
自学记录: 1.字符串 python中单引号和双引号使用完全相同. 使用三引号('''或""")可以指定一个多行字符串. 转义符 '\' 反斜杠可以用来转义,使用r可以让 ...
- python基础知识点四
网络编程(socket) 软件开发的架构: 两个程序之间通讯的应用大致通过从用户层面可以分为两种: 1是C/S,即客户端与服务端,为应用类的,比如微信,网盘等需要安装桌面应用的 2是B/S,即浏览器与 ...
- python基础知识点三
内置函数和匿名函数 python 一共有68个内置的函数:它们就是python提供给你直接可以拿来使用的所有函数 内置函数的图:链接 :https://www.processon.com/mindma ...
- python 基础知识点二
深浅copy 1对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的. l1 = [1,2,3,['barry','alex']] l2 = l1 l1[0] = 111 prin ...
- python 基础知识点一
基础数据类型初始. 数字:int 12,3,45 + - * / ** int: bit_lenth()转化为2进制的最小位数. % 取余数 ps:type() 字符串转化成数字:int(str ...
随机推荐
- 在eclipse中的交叉编译
1.硬件是Arm 9的板子,运行的系统是Ubuntu 12.05 2.电脑虚拟机上安装的系统是Ubuntu 10.04,程序的开发都是在虚拟机上完成,开发IDE是eclipse 3.eclipse 默 ...
- datetimepicker 使用
首先引入 <%--日历样式--%> <link rel="stylesheet" type="text/css" href="< ...
- XGBoost 与 Boosted Tree
http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex 编者按:本文是对开源xgboo ...
- 常用MSSQL语句
现在很少用SQL 写东西,但有时真用起来半天想不起来,看来还是有必要记录一下... 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMA ...
- [COCI11-12 #4]删数游戏(贪心+数据结构)
题目描述 题目描述 给出一个N位数字串,删除任意K位,使剩下的数最大.. 输入 第1行:2个整数N和K(1<=K<=N<=500000) 第2行:N个数字(可能为0) 输出 第1行: ...
- php中 "$$" 的详解
php中 $$str 这种写法称为可变变量 有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: <?php $a = " ...
- MyBatis 处理sql中的 大于,小于,大于等于,小于等于
Mybatis中的sql语句中的 “<” 和 “>” 号要用转义字符 “<” 和 ”>“ ,否则会报错! 如查找年龄大于等于指定年龄的用户信息: SELEC ...
- golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题
golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...
- IIS + FastCGI+php(从5.2升级到5.3)
由于PHP5.3 的改进,原有的IIS 通过isapi 方式解析PHP脚本已经不被支持,PHP从5.3.0 以后的版本开始使用微软的 fastcgi 模式,这是一个更先进的方式,运行速度更快,更稳定. ...
- mysql的group_concat列转行函数
SELECT auditor,sum(count) total, GROUP_CONCAT(type,'=', count) AS type_count FROM auditor_dm_ol GROU ...