吐血整理,接口自动化测试-Config配置文件框架封装(实战)


前言

configparser的介绍

ConfigParser模块已在Python 3中重命名为configparser
该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构

ini文件相关知识

键值对可用 = 或者 : 进行分隔;
section 的名字是区分大小写的,而 option 的名字是不区分大小写的;
键值对中头部和尾部的空白符会被去掉;
值可以为多行;
配置文件可以包含注释,注释以 # 或者 ; 为前缀;

ini文件示例

[server]    
age = 45
username = yes

# server就是section
# age、username就是option

操作ini文件

实例化ConfigParser类;
读取配置文件;
操作配置文件;

基础代码

import configparser

filename = 'F:/Interface/config/server.ini'
# 实例化configparser
config = configparser.ConfigParser()

# 读取配置文件
config.read(filename, encoding="utf-8-sig")

# 获取某个option的值(最常见的操作)
config.get(section="server", option="username")

当配置文件有中文时,在调用 read() 方法时,需要传 encoding=“utf-8-sig” 参数

最常见的操作就是 get(section,option,fallback=“默认值”) ,获取某个option的值,当然也可以传个 fallback ,当你的option不存在的时候,就会返回fallback的值

configparser封装类

为了更好的复用configparser,我们将常用的方法写成一个封装类

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  = 操作配置文件工具类
"""

import configparser


class ConfigUtil:
    # 实例化configparser
    config = configparser.ConfigParser()

    def read(self, filename):
        """
        读取配置文件
        :param filename: 配置文件路径
        """
        self.config.read(filename, encoding="utf-8-sig")

    def get(self, _options, _section='server'):
        """
        获取某个options值
        :param _options: option
        :param _section: section
        """
        try:
            # 方式一:调用方法
            value = self.config.get(section=_section, option=_options, fallback="默认值,key不存在则返回此值")

            # 方式二:索引
            value = self.config[_section][_options]
        except Exception as e:
            print("没有获取到值")
            value = None
        return value

    def get_options_key_value(self, _section):
        """
        以列表(name,value)的形式返回section中的每个值
        :param _section: 某个section
        :return: list[tuple(key,value)]
        """
        return self.config.items(_section)

    def get_all_section(self):
        """
        获取所有section
        """
        return self.config.sections()

    def get_options_by_section(self, _section):
        """
        获取section下所有可用options
        """
        # 方式一
        keys = []
        for _options in self.config[_section]:
            keys.append(_options)

        # 方式二(推荐)
        keys = self.config.options(_section)
        return keys

    def assert_section_in_config(self, _section):
        """
        判断section是否存在
        :param _section: 需要判断的section
        """
        return _section in self.config

    def assert_options_in_section(self, _section, _options):
        """
        判断options是否存在某个section中
        :param _section: 某个section
        :param _options: 需要判断的options的key值
        """
        return _options in self.config[_section]


configUtil = ConfigUtil()

if __name__ == '__main__':
    filename = 'F:/imocInterface/config/server.ini'
    configUtil.read(filename)
    print(configUtil.get("username"))
    print(configUtil.get_all_section())
    print(configUtil.assert_section_in_config("server"))
    print(configUtil.get_options_by_section("server"))
    print(configUtil.assert_options_in_section("server", "usernsame"))
    print(configUtil.get_options_key_value("server"))

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在人生的路上,不要被困难和挫折吓倒。坚持自己的梦想,为之努力拼搏。每一次尝试都是收获经验的机会,成功只有在不断尝试中才会到来。相信自己,不畏艰辛,你将收获更加美好的未来!

只有勇往直前的人,才能走向成功的巅峰;只有不断磨砺的心灵,才能闯出自己的天地。永远相信自己,坚定自己的目标,一步一个脚印向前迈进,你会发现奇迹就在不远处!

只有勇敢面对挑战,才能迎来成功的喜悦;只有不停追求进步,才能打造美好的未来。让我们一起努力奋斗,用汗水和智慧创造属于自己的辉煌!

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/131418890