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 = off
    case_id = [1,3,4,5,7]

    ������������������

    ������������ configparser ������������ Python ������������

    import configparser
    class 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 value
    if __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.py
    import openpyxl
    class 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.py
    import unittest
    from zy.test_case import TestSub
    from zy.do_excel import DoExcel
    import HTMLTestRunner
    from zy.conf import ReadConfig
    button = 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.py
    import unittest
    from zy.code import Sub
    from zy.do_excel import DoExcel
    class 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 = off
    case_id = [1,3,4,5,7]

    1.3 ������������������

    ������������ configparser ������������ Python ������������

    import configparser
    class 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 value
    if __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.py
    import openpyxl
    class 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.py
    import unittest
    from zy.test_case import TestSub
    from zy.do_excel import DoExcel
    import HTMLTestRunner
    from zy.conf import ReadConfig
    button = 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.py
    import unittest
    from zy.code import Sub
    from zy.do_excel import DoExcel
    class 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)

    ������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:Frame--ddt
    下一篇:Frame--unittest+单测

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月10日 23时29分22秒