目录:

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. 发布到FaceBook试玩广告,FaceBook要求要一个Html文件

    Facebook 试玩广告具体要求: 试玩广告参数是创建试玩广告素材时要满足的要求. 试玩素材应为 HTML5 格式. 试玩广告素材不应使用 mraid.js 格式. 包含所有素材的试玩广告的单个 H ...

  2. DHCP和TFTP服务

    DHCP服务 主要用途:用于内部网络和网络服务供应商自动分配IP地址给用户 用于内部网络管理员作为对所有电脑作集中管理的手段 使用场景:自动化安装系统 解决IPV4资源不足问题 DHCP共有八种报文: ...

  3. Python3.0科学计算学习之绘图(一)

    基本绘图: (1)  plot是标准的绘图库,调用函数plot(x,y)就可以创建一个带有绘图的图形窗口(其中y是x的函数).输入的参数为具有相同长度的数组(或列表):或者plot(y)是plot(r ...

  4. python小程序打包

    1.首先先要安装 pip install pywin32 pip install pyinstaller 没有越狱安装不了加个国内镜像地址: pip install pyinstaller -i ht ...

  5. java项目的异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你用System.ou ...

  6. 一个Monkey测试的小坑

    环境:Genymotion模拟器+Custome Phone-6.0.0,API 23 操作步骤如下: cd data/app ls //为了获取待测apk的包名 获取结果如下: 执行命令,其中包名使 ...

  7. sudo:无法解析主机

    原因:替换了hosts文件(之前用了google hosts) 或者更改了主机名称 解决办法:$ pkexec nano /etc/hosts 加入 127.0.1.1  xxxx XXX为主机名字即 ...

  8. ASP.NET gridview导出excel,防止繁体产生有乱码的方式

    //1.先引用比如 : using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...

  9. supervisor 从安装到使用

    (转)https://www.jianshu.com/p/3658c963d28b 一.安装 源码安装 先下载最新的supervisor安装包:https://pypi.python.org/pypi ...

  10. asp.net core mvc 在中间件中使用依赖注入问题:System.InvalidOperationException: Cannot resolve scoped service 'IXXXService' from root provider.

    今天在弄JWT的时候需要用到用户验证使用一个自己写好的验证,但在出现了:System.InvalidOperationException: Cannot resolve scoped service ...