python基础知识测验_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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值