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 ...
随机推荐
- 用php实现斐波那契数列,如: 1, 1, 2, 3, 5, 8, 13, 21, 34。用数组求出第20个数的值。
<?php //用数组 function fib($n){ $array = array(); $array[0] = 1; $array[1] = 1; for($i=2;$i<$n;$ ...
- ELK+Filebeat 集中式日志解决方案详解
链接:https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html?ca=drs- ELK Stack ...
- sitecore8.2 基于相对路径查询item
当前项目: bar (path: /sitecore/content/home/foo/bar) 查询: query:./child/grandchild 结果: grandchild (path: ...
- Java基础语法-Lambda表达式
1.Lambda表达式主要用于简写接口的操作等出现匿名内部类的地方,如下:我这里先定义一个Swim接口,以及它所定义的swim()方法 interface Swim{ void swim(); } 2 ...
- Oarcle之单行函数(上)
dual 是一个虚表,为了满足sql句式而设置这么一个表 单行函数 字符函数 concat 拼接两个字符串 select concat (concat(ename,‘的职位是’),job) fro ...
- Python批量合并处理B站视频
最近想学习后端,又不想花钱,怎么办呢?于是在手机端B站(哔哩哔哩)上面找到了满意的免费视频教程,但是手机端看起来很不方便啊.于是,我通过在手机端缓存下来后,导入到了电脑端,但是我后面了发现两个问题: ...
- SlidingMenu第三篇 --- SlidingMenu使用介绍
在Activity中通过SlidingMenu的构造方法,直接设置侧滑菜单 public class Main2Activity extends Activity { @Override protec ...
- js 对url进行某个参数的删除,并返回url
两种情况 1对当前页面的url进行操作 function funcUrlDel(name){ var loca = window.location; var baseUrl = loca.origin ...
- 各种CSS样式设置细线边框
基础知识回顾 : cellspacing:单元格与单元格之间的边距:cellpadding:单元格内的内容与单元格边沿的边距 简单实用的样式,设置所有的单元格为细线效果 <style type= ...
- Vagrant Box下载缓慢解决方法
box 搜索页面:https://atlas.hashicorp.com/boxes/search example:homestead 1,选中box和版本,先根据提示安装 2,获取box下载地址,采 ...