目录:

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)的更多相关文章

  1. 最全Python基础知识点梳理

    本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾.python的详细语法介绍可以查看官方编程手册,也有一些在线网站可以学习 python语言 ...

  2. Python基础知识点小结

    1.Python基础知识 在Python中的两种注释方法,分别是#注释和引号('''   ''')注释,#注释类似于C语言中的//注释,引号注释类似于C语言中的/*   */注释.接着在Python中 ...

  3. Python基础知识点总结

    Python基础知识与常用数据类型 一.Python概述: 1.1.Python的特点: 1.Python是一门面向对象的语言,在Python中一切皆对象 2.Python是一门解释性语言 3.Pyt ...

  4. python 基础知识点整理 和详细应用

    Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...

  5. Python基础知识点

    自学记录: 1.字符串 python中单引号和双引号使用完全相同. 使用三引号('''或""")可以指定一个多行字符串. 转义符 '\' 反斜杠可以用来转义,使用r可以让 ...

  6. python基础知识点四

    网络编程(socket) 软件开发的架构: 两个程序之间通讯的应用大致通过从用户层面可以分为两种: 1是C/S,即客户端与服务端,为应用类的,比如微信,网盘等需要安装桌面应用的 2是B/S,即浏览器与 ...

  7. python基础知识点三

    内置函数和匿名函数 python 一共有68个内置的函数:它们就是python提供给你直接可以拿来使用的所有函数 内置函数的图:链接 :https://www.processon.com/mindma ...

  8. python 基础知识点二

    深浅copy 1对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的. l1 = [1,2,3,['barry','alex']] l2 = l1 l1[0] = 111 prin ...

  9. python 基础知识点一

    基础数据类型初始. 数字:int 12,3,45 + - * / **    int: bit_lenth()转化为2进制的最小位数. % 取余数 ps:type() 字符串转化成数字:int(str ...

随机推荐

  1. centos7 vmd-1.9.3安装

    1. 下载安装包 安装包下载地址是http://www.ks.uiuc.edu/Research/vmd/,选择自己合适的版本,我下载1.9.3版本 2. 安装必要库 yum install free ...

  2. postman headers 请求参数和MD5加密签名

    postman 变量可以这样写:{{timestamp}} ,也可以用系统的,{{$timestamp}},这样就不用给自己赋值了,但在 pre-requestScript中是获取不到这个值的 所以我 ...

  3. Oracle创建新undo表空间最佳实践(包含段检查)

    在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ...

  4. mvc partialView+kendo window

    在写mvc项目时,一个列表查询页面含有多个操作按钮及弹框操作.原本写在了一个view中,导致代码繁多复杂,难以维护,还有表单赋值清空.验证等麻烦. 因此改用kendo window +partialV ...

  5. 灵雀云受邀加入VMware 创新网络,共同助力企业数字化进程

        11月15日,在VMware主办的“VMware创新网络”2018高峰论坛上,VMware发布了VMware创新网络(VMwareInnovation Network,VIN)的长期发展规划和 ...

  6. C# 中List<T>与DataSet之间的转换

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  7. Unity用Vuforia做AR实现脱卡效果

    这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105

  8. Gradle's dependency cache may be corrupt

    原因分析: 当前Android studio 安装或者升级后配置的Gradle版本不对.可以打开安装目录下\Android\Android Studio\gradle\查看当前已有最新的版本.例如下图 ...

  9. charls 抓包

    一.HTTPS原理: HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上进行传 ...

  10. Windows 安装配置MongoDB

    1.安装 下载安装包 直接下一步. 2.添加环境变量 3.bin同级目录下新建data文件夹,data文件夹下新建db和log文件夹 4.输入命令启动mongodb服务 mongod --dbpath ...