zoukankan      html  css  js  c++  java
  • 接口测试 (三)功能分类及配置文件引入

    #data_test.py
    from openpyxl import load_workbook
    import json
    from project_data.file_path import filepath
    from project_data.cfg_read import Read_Url
    class Date_test():
    
        def __init__(self):
            self.case_id = None
            self.url = None
            self.data = None
            self.Method = None
            self.expected = None
            self.sheet_name = None
            self.url = eval(Read_Url().Read_url())
    
        # 输出字典
        def Date_test_list(self,sheetname):
            """
            配置文件读取模块
            :return:
            """
            wb = load_workbook(filepath + "project_datacases.xlsx")
            list = []
            for j in wb.get_sheet_names():
                ws = wb[j]
                for i in range(2,ws.max_row + 1):
                    if j == sheetname:
                        result = {}
                        result["case_id"] = ws.cell(i, 1).value
                        result["url"] = self.url + ws.cell(i,3).value
                        result["data"] = ws.cell(i,4).value
                        result["Method"] = ws.cell(i,5).value
                        result["expected"] = ws.cell(i,6).value
                        result["sheet_name"] = j
                        list.append(result)
            wb.close()
            return list
        #输出对象
        def Date_test_xlsx(self,sheetname):
            wb = load_workbook(filepath + "project_datacases.xlsx")
            list = []
            for j in wb.get_sheet_names():
                ws = wb[j]
                for i in range(2,ws.max_row + 1):
                    if j == sheetname:
                        case = Date_test()
                        case.case_id = ws.cell(i, 1).value
                        case.url = self.url + ws.cell(i,3).value
                        case.data = ws.cell(i,4).value
                        case.Method = ws.cell(i,5).value
                        case.expected = ws.cell(i,6).value
                        case.sheet_name = j
                        list.append(case)
            wb.close()
            return list
    
    
        def Date_test_write(self, test_function, x,sheet_name):
            """
            运行结果写入模块
            :param test_function:
            :param test_text:
            :param x:
            :return:
            """
            Dict = {}
            wb = load_workbook(filepath+"project_datacases.xlsx")
            ws = wb[sheet_name]
            test_function = json.loads(test_function)
            Dict["status"] = test_function["status"]
            Dict["code"] = test_function["code"]
            Dict["msg"] = test_function["msg"]
            ws.cell(x+1, 7).value = str(Dict)
            if ws.cell(x+1,6).value == ws.cell(x+1, 7).value:
                ws.cell(x+1, 8).value = "PASS"
            else:
                ws.cell(x+1, 8).value = "FAIL"
            ws.cell(x+1, 9).value = str(test_function["data"])
            wb.save(filepath+"project_datacases.xlsx")
            wb.close()
    
        @staticmethod
        def Email_Date():
            username = "username"
            password = "password"
            To_Email = "To_Email_1,To_Email_2"
            return username, password, To_Email
    
    
    #cfg_read.py
    from configparser import ConfigParser
    from project_data.file_path import filepath
    class Read_Url():
        def Read_url(self):
            cf = ConfigParser()
            cf.read(filepath + "project_datahttp_console.cfg", encoding="utf-8")
            if cf.get(section="data_console", option="console"):
                hu = ConfigParser()
                hu.read(filepath + "project_datahttp_test.cfg", encoding="utf-8")
                return hu.get(section="Url_data", option="url")
            else:
                hu = ConfigParser()
                hu.read(filepath + "project_datahttp_www.cfg", encoding="utf-8")
                return hu.get(section="Url_data", option="url")
    
    #file_path.py
    import os
    
    filepath = os.path.dirname(os.path.dirname(__file__))
    

    注意:

       1.优化的模块均属于配置目录下,顺便引入了配置文件,方便域名的切换

       2.引入sheetname参数,方便用例功能分类

       3.博客园抽风了无法贴图,所以cfg配置文件我就不放了

       4.用例未做任何改动,只引入了sheetname参数,在data妆饰符中使用就行

       5.用例新增了投标模块,但是这方面灵活度很大,所以就不放上来了

  • 相关阅读:
    view和activity的区别
    接口对象的实例化在接口回调中的使用
    GreenDao
    HAOI 2012 高速公路
    SDOI2010 地精部落
    hdu 1505 City Game
    uva 1506 Largest Rectangle in a Histogram
    2017 济南综合班 Day 2
    uva 12325 Zombie's Treasure Chest
    uva 11212 Editing a Book
  • 原文地址:https://www.cnblogs.com/keima/p/10732631.html
Copyright © 2011-2022 走看看