python接口自动化第八篇--config 配置文件封装


import os


from TeacherWebsite.setting.constant import p_path
from configparser import ConfigParser, NoSectionError, NoOptionError



class ConfigHandler:
    def __init__(self,filename,encoding='utf-8'):
        self.filename = filename
        self.encoding = encoding
        self.config = ConfigParser()
        a = self.config.read(filename,encoding=encoding)

    def read(self,section,option):
        try:
            return self.config.get(section,option)
        except NoSectionError:
            print('没有这个section')
        except NoOptionError:
            print('没有这个option')
    def get_list(self,section,option):
        option_str = self.read(section,option)
        #list转化
        if isinstance(eval(option_str),list):
            return eval(option_str)
        return None


config = ConfigHandler(os.path.join(p_path.CONFIG_PATH,'config.ini'))
#因为在test—case包里每个文件都要使用ConfigHandler,所以直接在这个文件下边初始化一个config,直接去调用,就不用重复的初始化初始化了

p_path 文件是引入这个包下边的文件

python接口自动化第八篇--config 配置文件封装_第1张图片

代码如下:

#建立常量,可以吧所有可能会发生变动的常量
import os



class ProjectPath():
    #ROOT_PATH = os.path.dirname(os.path.abspath(__file__))#ROOT_PATH获取的文件夹是setting
    ROOT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#这次获取的是项目名称TeacherWebsite
    DATA_PATH = os.path.join(ROOT_PATH,'data')#获取data包的数据路径
    CONFIG_PATH = os.path.join(ROOT_PATH,'setting')#获取config,ini的路径,该路径在config_handler实例化下边引用到
    CASE_PATH = os.path.join(ROOT_PATH, 'test_case')# 测试用例方法路径
    REPORT_PATH = os.path.join(ROOT_PATH, 'report')# 测试报告路径

    # 如果没有改文件夹,自动创建
    if not os.path.exists(REPORT_PATH):
        os.mkdir(REPORT_PATH)



p_path = ProjectPath()#实例化方便引用

 

 

 

 

 

你可能感兴趣的:(python,接口自动化测试,自动化测试)