Acabado de hematemesis, pruebas de automatización de interfaz: encapsulación del marco de configuración del archivo de configuración (combate real)


prefacio

Introducción a configparser

Se ha cambiado el nombre del módulo ConfigParser a configparser en Python 3.
Este módulo define la clase ConfigParser. La clase ConfigParser implementa un lenguaje analizador de archivos de configuración básico que proporciona una estructura similar a la que se encuentra en los archivos .ini

conocimiento relacionado con el archivo ini

Los pares clave-valor se pueden separar por = o:;
los nombres de las secciones distinguen entre mayúsculas y minúsculas, mientras que los nombres de las opciones no distinguen entre mayúsculas y minúsculas;
se eliminarán los espacios en blanco iniciales y finales en los pares clave-valor; los
valores pueden tener varias líneas;
El archivo de configuración puede contener comentarios, y los comentarios tienen el prefijo # o ;;

ejemplo de archivo ini

[server]    
age = 45
username = yes

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

Manipular el archivo ini

Instanciar la clase ConfigParser,
leer el archivo de configuración,
operar el archivo de configuración;

codigo base

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")

Cuando el archivo de configuración tiene chino, al llamar al método read(), debe pasar el parámetro encoding="utf-8-sig"

La operación más común es get(section,option,fallback="default value") para obtener el valor de una opción, por supuesto, también puede pasar una alternativa, cuando su opción no existe, se devolverá el valor de la alternativa

clase de encapsulación configparser

Para reutilizar mejor configparser, escribimos métodos comúnmente usados ​​como una clase contenedora

#!/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"))

El siguiente es el diagrama de sistema de arquitectura de conocimiento de aprendizaje de ingeniero de prueba de software más completo en 2023 que compilé

1. De la entrada al dominio de la programación en Python

Por favor agregue una descripción de la imagen

2. Proyecto de automatización de interfaz de combate real.

Por favor agregue una descripción de la imagen

3. Combate real del proyecto de automatización web

Por favor agregue una descripción de la imagen

4. Combate real del proyecto de automatización de aplicaciones

Por favor agregue una descripción de la imagen

5. Hoja de vida de los fabricantes de primer nivel

Por favor agregue una descripción de la imagen

6. Probar y desarrollar el sistema DevOps

Por favor agregue una descripción de la imagen

7. Herramientas de prueba automatizadas de uso común

Por favor agregue una descripción de la imagen

Ocho, prueba de rendimiento JMeter

Por favor agregue una descripción de la imagen

9. Resumen (pequeña sorpresa al final)

En el camino de la vida, no te dejes intimidar por las dificultades y contratiempos. Apégate a tus sueños y trabaja duro por ellos. Cada intento es una oportunidad para ganar experiencia, y el éxito solo puede llegar cuando sigues intentándolo. Cree en ti mismo, sin miedo a las dificultades, ¡cosecharás un futuro mejor!

Solo aquellos que avanzan con valentía pueden alcanzar la cima del éxito; solo aquellos que se perfeccionan constantemente pueden salir de su propio mundo. Cree siempre en ti mismo, mantente firme en tus metas, avanza paso a paso, ¡y encontrarás que los milagros no están lejos!

Solo si enfrentamos los desafíos con valentía podemos dar la bienvenida a la alegría del éxito; solo si buscamos constantemente el progreso podemos crear un futuro mejor. ¡Trabajemos duro juntos y creemos nuestro propio brillo con sudor y sabiduría!

Supongo que te gusta

Origin blog.csdn.net/csdnchengxi/article/details/131418890
Recomendado
Clasificación