史上最高、インターフェイス自動化テスト - yaml フレームワーク設定ファイルの概要 (超詳細)


序文

yaml ファイルは設定ファイルの一種で、ini や conf 設定ファイルに比べて簡潔で操作が簡単で、異なる種類のデータを同時に保存できます。

yamlの紹介と使い方

1. yaml の概要
YAML 言語 ( /ˈjæməl/ ) の設計目標は、人間の読み書きを容易にすることです。これは本質的に汎用のデータシリアル化形式です。

YAML は非常に柔軟な形式であり、ほぼ JSON のスーパーセットです。YAML は、コメント、改行区切り文字、複数行文字列、裸の文字列、およびより柔軟な型システムをサポートすることに加えて、コードの重複を避けるために参照ファイルもサポートします。

2. Yaml 文法規則
基本的な文法規則:
大文字と小文字を区別する;
階層関係を示すためにインデントを使用する;
インデントにタブ キーは許可されず、スペースのみが許可される;
同じ要素が存在する限り、インデントに使用するスペースの数は重要ではないレベルは左に揃えられます これは
#コメントを意味し、この文字から行末まではパーサーによって無視されます。

3. Yaml データ構造
オブジェクト: マッピング (マッピング)、ハッシュ (ハッシュ)、ディクショナリ (辞書) とも呼ばれる、キーと値のペアのコレクション; 配列: 順番に並べられた
値のセット、別名シーケンス (シーケンス)、リスト (リスト);
スカラー (スカラー): 単一の分割できない値。

オブジェクト
の形式Map (属性と値) (キーと値のペア):
key:(スペース)value : キーと値のペアのペアを示し、スペースは省略できません。

person:
    name:vivi
    age:18

たった一行の文章:

person:{
    
    name: vivi,age: 18}

JSON 形式と同等:

{
    
    "name":"vivi","age":18}

配列:
ハイフネーション行で始まり、配列を形成する一連の行。「-」記号は配列の前に追加され、記号と値はスペースで区切る必要があります。

color:
   - red
   - blue
   - green

たった一行の文章:

color: [red,blue,green]

JSON と同等:

["red","blue","green"]

スカラー:
単一の割り切れない値。(例: 文字列、ブール値、整数、浮動小数点数、時刻、日付、null など)

n1:8
n2:8.8
n3:true
n4:false
n5:'vivi'

yaml 設定ファイルの使用

1. yaml 設定ファイルの準備
プロジェクト直下に新規ディレクトリ config を作成し、その直下に新規ファイル config.yaml を作成します。

A1

データベース構成を config.yaml 構成ファイルに書き込みます。

mysql:
  host: "127.0.0.1"
  port: 3306
  user: "vivi"
  password: "123456"
  db: "ITester"
  charset: "utf8"

2. yaml 設定ファイルの形式検証
yaml について学んだばかりの学生は、yaml 形式に習熟しておらず、形式エラーが発生する可能性があるため、ここでは、作成した yaml ファイルの形式が正しいかどうかを検証するオンライン Web サイトを推奨します。

A2

オンラインアドレス: https://www.bejson.com/validators/yaml_editor/

yaml 設定ファイルの読み取りと書き込み

Pythonでyamlファイルを読み取る前に、pyyamlをインストールしてyamlモジュールをインポートする必要があります。

1. pyYaml をインストールして
、Python で yaml ファイルを読み取るには、サードパーティ モジュール PyYaml を使用する必要があります。
インストールコマンド:

pip install pyYaml

2. yaml モジュールのソースコードの解析
yaml モジュールからロード関数とダンプ関数を抽出します。

def load(stream, Loader=None):
    """
    Parse the first YAML document in a stream
    and produce the corresponding Python object.
    """
    if Loader is None:
        load_warning('load')
        Loader = FullLoader
    loader = Loader(stream)
    try:
        return loader.get_single_data()
    finally:
        loader.dispose()
        
def dump(data, stream=None, Dumper=Dumper, **kwds):
    """
    Serialize a Python object into a YAML stream.
    If stream is None, return the produced string instead.
    """
    return dump_all([data], stream, Dumper=Dumper, **kwds)

ロード:
yaml ストリームを Python 辞書に変換します。

dump:
Python オブジェクトを yaml ストリームに変換します。

3. yaml 設定ファイルの読み取りと書き込み
yaml 設定ファイルの読み取りと書き込みのためのクラスをカプセル化します。
共通ディレクトリに新しいファイルを作成します。config_handler.py は yaml の読み取りと書き込みに使用されます。

A2

config_handler.py

import yaml


class YamlHandler:
    def __init__(self,file):
        self.file = file
        
    def read_yaml(self,encoding='utf-8'):
        """读取yaml数据"""
        with open(self.file, encoding=encoding) as f:
            return yaml.load(f.read(), Loader=yaml.FullLoader)
            
    def write_yaml(self, data, encoding='utf-8'):
        """向yaml文件写入数据"""
        with open(self.file, encoding=encoding, mode='w') as f:
            return yaml.dump(data, stream=f, allow_unicode=True)


if __name__ == '__main__':
    data = {
    
    
        "user":{
    
    
            "username": "vivi",
            "password": "123456"
        }
    }
    # 读取config.yaml配置文件数据
    read_data = YamlHandler('../config/config.yaml').read_yaml()
    # 将data数据写入config1.yaml配置文件
    write_data = YamlHandler('../config/config1.yaml').write_yaml(data)
    print(read_data)

操作の結果は次のようになります。

{
    
    'mysql': {
    
    'host': '127.0.0.1', 'port': 3306, 'user': 'vivi', 'password': '123456', 'db': 'ITester', 'charset': 'utf8'}}

config1.yaml に書き込まれるデータ。
config1.yaml

user:
  password:'123456'
  username:vivi
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。

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

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

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

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

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

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

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

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

5. 一流メーカーの再開

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

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

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

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

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

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

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

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

立ち止まらず、夢を諦めず、たとえ前途多難であっても、それをしっかり信じて一歩ずつ前に進んでください。懸命に働くことによってのみ、私たちは人生の素晴らしい変化を目にし、自分自身の輝きと成果を得ることができます。

勝利は困難に屈しない者のものであり、成功は努力をやめない者のものです。汗を流して粘り強く、勇気を出して恐怖を払拭し、夢を追いかける道中、立ち止まらない限り、勝利の旗はやがてあなたの手に高く舞い上がります。

失敗に怯えることなく戦い続ければ、収穫は成功という甘さに変わるでしょう。目標をより高く設定し、足取りをより安定させ、努力と汗を流して自分自身の輝かしい章を書き上げましょう。

おすすめ

転載: blog.csdn.net/shuang_waiwai/article/details/132209251