在自動化過程中,需要使用配置檔案儲存資料,比如資料庫資訊、賬號資訊、網域名稱等。
其中,yaml
檔案是一種配置檔案型別,相比較ini
,conf
配置檔案來說,更加的簡潔,操作也更加簡單,同時可以存放不同型別的資料。
以下主要介紹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二yaml配置檔案的使用在專案下新建乙個目錄config,在目錄下新建乙個檔案config.yaml。n2: 8.8
n3: true
n4: false
n5: 'vivi'
在config.yaml配置檔案中寫入資料庫配置。
mysql:02 yaml配置檔案格式校驗host: "127.0.0.1"
port: 3306
user: "vivi"
password: "123456"
db: "itester"
charset: "utf8"
三yaml配置檔案讀寫在python中讀取yaml檔案,需要用到第三方模組pyyaml。
安裝命令:
pip install pyyaml02 yaml模組原始碼解析
從yaml模組中提取出load
、dump
函式。
def load(stream, loader=none):load:將yaml流轉化為python字典;"""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)
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:總結:本文主要介紹yaml語法、yaml儲存資料,封裝類讀取yaml配置檔案。password: '123456'
username: vivi
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...