吐血仕上げ、インターフェース自動化テスト - Config設定ファイルフレームワークのカプセル化(実戦)


序文

configparser の概要

ConfigParser モジュールは、Python 3 では configparser に名前変更されました。
このモジュールは、ConfigParser クラスを定義します。ConfigParser クラスは、.ini ファイルにあるものと同様の構造を提供する基本的な構成ファイル パーサー言語を実装します。

iniファイル関連の知識

キーと値のペアは = または: で区切ることができます;
セクション名は大文字と小文字が区別されますが、オプション名は大文字と小文字が区別されません;
キーと値のペアの先頭と末尾の空白は削除されます;
は複数行にすることができます。
設定ファイルにはコメントを含めることができ、コメントには # または ;; の接頭辞が付けられます。

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="default value") です。もちろん、フォールバックを渡すこともできます。オプションが存在しない場合は、フォールバックの値が返されます。

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 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。

1. Pythonプログラミングの入門から習得まで

画像の説明を追加してください

2.インターフェース自動化プロジェクトの実戦

画像の説明を追加してください

3. Web自動化プロジェクトの実戦

画像の説明を追加してください

4. アプリ自動化プロジェクトの実戦

画像の説明を追加してください

5. 一流メーカーの再開

画像の説明を追加してください

6. DevOps システムのテストと開発

画像の説明を追加してください

7. 一般的に使用される自動テストツール

画像の説明を追加してください

8、JMeterのパフォーマンステスト

画像の説明を追加してください

9. まとめ(最後にちょっとしたサプライズ)

人生の道において、困難や挫折に怯えてはいけません。夢を持ち続けて、そのために一生懸命働きましょう。あらゆる試みは経験を積む機会であり、成功は努力を続けた場合にのみ得られます。困難を恐れず、自分を信じれば、より良い未来が得られるでしょう。

勇敢に前進する者だけが成功の頂点に到達することができ、常に磨き続けた者だけが自分の世界から抜け出すことができます。常に自分を信じ、目標をしっかりと持ち、一歩ずつ前進してください。そうすれば奇跡は遠くないことがわかるでしょう。

果敢に挑戦に立ち向かうことによってのみ、私たちは成功の喜びを歓迎することができ、絶えず進歩を追求することによってのみ、より良い未来を創造することができます。一緒に切磋琢磨し、汗と知恵で自分たちの輝きを創り出しましょう!

おすすめ

転載: blog.csdn.net/csdnchengxi/article/details/131418890