
Frame--配置文件
������������������������������ ������ ������������������ ��������� ������������������������������ ������ ������������������ ���������
发布日期:2021-05-14 12:23:07
浏览次数:15
分类:精选文章
本文共 8080 字,大约阅读时间需要 26 分钟。
���������������������������������
������������������
������������������
������������������������������������.config
���.ini
���.conf
���.properties
���.xml
Python������������������
section
��������������� section
������������������ option
���section
������������ [sect_name]
������option
��������������������������������� = ��� :
���������������������������������#������
# case.conf[SECTION]button = offcase_id = [1,3,4,5,7]
������������������
������������ configparser
������������ Python ������������
import configparserclass ReadConfig: def read_config(self, file_path, section, option): cf = configparser.ConfigParser() cf.read(file_path, encoding='utf-8') value = cf.get(section, option) return valueif __name__ == '__main__': button = ReadConfig().read_config('case.conf', 'SECTION', 'button') case_id = ReadConfig().read_config('case.conf', 'SECTION', 'case_id') print(button, case_id)
������������
Excel������������
# do_excel.pyimport openpyxlclass DoExcel: def read_data(self, button, case_id): wb = openpyxl.load_workbook('test_data.xlsx') sheet = wb['model1'] header = [] for column in range(1, 6): header.append(sheet.cell(1, column).value) # ������������ test_data = [] for row_id in range(2, 10): row_data = {} for column_id in range(1, 6): cell_value = sheet.cell(row_id, column_id).value row_data[header[column_id-1]] = cell_value test_data.append(row_data) # ������������������������������������ if button == 'on': final_data = [] for item in test_data: if item['case_id'] in case_id: final_data.append(item) else: final_data = test_data return final_data def write_back(self, row_id, ActualResult, TestResult): wb = openpyxl.load_workbook('test_data.xlsx') sheet = wb['model1'] sheet.cell(row_id, 6).value = ActualResult sheet.cell(row_id, 7).value = TestResult wb.save('test_data.xlsx')
������������
# excute_case.pyimport unittestfrom zy.test_case import TestSubfrom zy.do_excel import DoExcelimport HTMLTestRunnerfrom zy.conf import ReadConfigbutton = ReadConfig().read_config('case.conf', 'SECTION', 'button')case_id = eval(ReadConfig().read_config('case.conf', 'SECTION', 'case_id'))test_data = DoExcel().read_data(button, case_id)suite = unittest.TestSuite()for item in test_data: suite.addTest(TestSub(item['param_a'], item['param_b'], item['ExpectedResult'], item['title'], item['case_id'], 'test_sub'))with open('TestResult.html', 'wb') as file: runner = HTMLTestRunner.HTMLTestRunner(file, title='������������', description='���������������������������������������������������', tester='������-zy') runner.run(suite)
������������������
# test_case.pyimport unittestfrom zy.code import Subfrom zy.do_excel import DoExcelclass TestSub(unittest.TestCase): def setUp(self): self.t = Sub() self.wb = DoExcel() def __init__(self, a, b, expected, title, case_id, methodName): super(TestSub, self).__init__(methodName) self.a = a self.b = b self.expected = expected self.title = title self.case_id = case_id def tearDown(self): pass def test_sub(self): print(f'���������������{self.title}') res = self.t.sub(self.a, self.b) try: self.assertEqual(res, self.expected) test_result = 'PASS' except AssertionError as e: test_result = 'FAIL' raise e finally: self.wb.write_back(self.case_id + 1, res, test_result)
������������
1. ������������
1.1 ������������������������
������������������������������.config
���.ini
���.conf
���.properties
���.xml
1.2 Python������������������
section
������section
������������������ option
���option
��������������������������������������� = ��� :
������#������
# case.conf[SECTION]button = offcase_id = [1,3,4,5,7]
1.3 ������������������
������������ configparser
������������ Python ������������
import configparserclass ReadConfig: def read_config(self, file_path, section, option): cf = configparser.ConfigParser() cf.read(file_path, encoding='utf-8') value = cf.get(section, option) return valueif __name__ == '__main__': button = ReadConfig().read_config('case.conf', 'SECTION', 'button') case_id = ReadConfig().read_config('case.conf', 'SECTION', 'case_id') print(button, case_id)
2. ������������
2.1 Excel������������
# do_excel.pyimport openpyxlclass DoExcel: def read_data(self, button, case_id): wb = openpyxl.load_workbook('test_data.xlsx') sheet = wb['model1'] header = [] for column in range(1, 6): header.append(sheet.cell(1, column).value) # ������������ test_data = [] for row_id in range(2, 10): row_data = {} for column_id in range(1, 6): cell_value = sheet.cell(row_id, column_id).value header[column_id-1] row_data[header[column_id-1]] = cell_value test_data.append(row_data) # ������������������������������������ if button == 'on': final_data = [] for item in test_data: if item['case_id'] in case_id: final_data.append(item) else: final_data = test_data return final_data def write_back(self, row_id, ActualResult, TestResult): wb = openpyxl.load_workbook('test_data.xlsx') sheet = wb['model1'] sheet.cell(row_id, 6).value = ActualResult sheet.cell(row_id, 7).value = TestResult wb.save('test_data.xlsx')
2.2 ������������
# excute_case.pyimport unittestfrom zy.test_case import TestSubfrom zy.do_excel import DoExcelimport HTMLTestRunnerfrom zy.conf import ReadConfigbutton = ReadConfig().read_config('case.conf', 'SECTION', 'button')case_id = eval(ReadConfig().read_config('case.conf', 'SECTION', 'case_id'))test_data = DoExcel().read_data(button, case_id)suite = unittest.TestSuite()for item in test_data: suite.addTest(TestSub(item['param_a'], item['param_b'], item['ExpectedResult'], item['title'], item['case_id'], 'test_sub'))with open('TestResult.html', 'wb') as file: runner = HTMLTestRunner.HTMLTestRunner(file, title='������������', description='���������������������������������������������������', tester='������-zy') runner.run(suite)
2.3 ������������������
# test_case.pyimport unittestfrom zy.code import Subfrom zy.do_excel import DoExcelclass TestSub(unittest.TestCase): def setUp(self): self.t = Sub() self.wb = DoExcel() def __init__(self, a, b, expected, title, case_id, methodName): super(TestSub, self).__init__(methodName) self.a = a self.b = b self.expected = expected self.title = title self.case_id = case_id def tearDown(self): pass def test_sub(self): print(f'���������������{self.title}') res = self.t.sub(self.a, self.b) try: self.assertEqual(res, self.expected) test_result = 'PASS' except AssertionError as e: test_result = 'FAIL' raise e finally: self.wb.write_back(self.case_id + 1, res, test_result)
������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月10日 23时29分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
setup facatory9.0打包详细教程(含静默安装和卸载)
2021-05-15
ionic4 路由跳转传值
2021-05-15
ionic4 接收API数据库传值并显示
2021-05-15
CSDN 怎么写出好看的博客
2021-05-15
LeetCode题解——制作 m 束花所需的最少天数
2021-05-15