Python介面自動化之yaml配置檔案

2022-06-05 10:57:09 字數 3771 閱讀 9432

在自動化過程中,需要使用配置檔案儲存資料,比如資料庫資訊、賬號資訊、網域名稱等。

其中,yaml檔案是一種配置檔案型別,相比較iniconf配置檔案來說,更加的簡潔,操作也更加簡單,同時可以存放不同型別的資料。

以下主要介紹yaml語法、yaml儲存資料,封裝類讀寫yaml配置檔案。

yaml介紹及使用

yaml語言( /ˈjæməl/ )的設計目標,就是方便人類讀寫。它實質上是一種通用的資料序列化格式。

yaml 是一種非常靈活的格式,幾乎是json的超集。除了支援注釋、換行符分隔、多行字串、裸字串和更靈活的型別系統之外,yaml 也支援引用檔案,以避免重複**。

基本語法規則:

陣列:一組按次序排列的值,又稱為序列(sequence) 、列表(list);

純量(scalars):單個的、不可再分的值;

▌物件

map(屬性和值)(鍵值對)的形式:

key:(空格)value :表示一對鍵值對,空格不可省略。

person:

name: vivi

age: 18

person:

陣列

一組連詞線開頭的行,構成乙個陣列。陣列前加有 「-」 符號,符號與值之間需用空格分隔。

color:

- red

- blue

- green

color: [red,blue,green]

相當於json:

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

純量

單個的、不可再分的值。(如:字串、bool值、整數、浮點數、時間、日期、null等)

n1: 8

n2: 8.8

n3: true

n4: false

n5: 'vivi'

yaml配置檔案的使用在專案下新建乙個目錄config,在目錄下新建乙個檔案config.yaml。

在config.yaml配置檔案中寫入資料庫配置。

mysql:

host: "127.0.0.1"

port: 3306

user: "vivi"

password: "123456"

db: "itester"

charset: "utf8"

02  yaml配置檔案格式校驗

yaml配置檔案讀寫在python中讀取yaml檔案,需要用到第三方模組pyyaml。

安裝命令:

pip install pyyaml

02  yaml模組原始碼解析

從yaml模組中提取出loaddump函式。

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)

load:將yaml流轉化為python字典;

dump:

將python物件轉化為yaml流;

03  讀寫yaml配置檔案

將讀寫yaml配置檔案的類進行封裝。

在common目錄下新建乙個檔案,config_handler.py用於讀寫yaml。

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 =

}# 讀取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)

執行結果為:

}

寫入到config1.yaml的資料。

config1.yaml

user:

password: '123456'

username: vivi

總結:本文主要介紹yaml語法、yaml儲存資料,封裝類讀取yaml配置檔案。

python之requests介面自動化

在進行介面自動化測試時,有好多介面都基於登陸介面的響應值來關聯進行操作的,在次之前試了很多方法,都沒有成功,其實很簡單用session來做。coding utf 8 import requests 在登陸模組建立乙個全域性session,在其他介面操作時帶入登陸時的session,保持session...

python介面自動化之token

python介面自動化token 匯入request包 import requests 匯入json包 import json 設定訊息頭資訊 header 設定引數資訊 params 將設定的引數資訊轉換為json格式的資料 data json.dumps params 設定url資料 url 設...

Python 介面自動化

python環境搭建 第三方庫 requests安裝 pip install requests 網爛時可能安裝失敗,嗯 pip安裝第三方庫提示版本較低時需要更新pip的版本 命令 python m pip install upgrade pip 檢視安裝的第三方庫 pip list requests...