Python自動化測試之獲取配置檔案資訊

johnychen發表於2021-09-09

為什麼使用配置檔案

在python自動化測試中,為了減輕測試指令碼維護過程中工作量,我們可以將一些常用的變數或者引數值放置在配置檔案中。

當我們需要修改某個變數的值時,只需修改配置檔案中的選項值就可以實現這一目的,不在需要去改變程式碼中的每個變數

尤其是對頁面需求經常變動的UI測試而言,掌握配置檔案的讀取方法,可以較大限度的減少程式碼修改量


配置檔案的優點

除了可以減輕測試指令碼在維護過程中的工作量,使用配置檔案還有如下優點:


可以不用去修改原始碼,配置檔案的修改只會影響讀取時的存在與否,不會影響到程式碼的正常執行,提高程式碼的容錯率;

不管是在維護階段還是搭建自動化階段,我們只需要對配置檔案進行讀取,而不是重複地寫冗餘程式碼,從而提高工作效率。

正文

在自動化測試中,經常使用的配置檔案型別包括如下兩類,分別為:①.ini ②.yaml,這兩個檔案型別也分別應用在UI的自動化和介面的自動化中


.ini配置檔案

.ini配置檔案格式如下:

圖片描述

section不能重複,裡面資料透過section去查詢,每個seletion下可以有多個key和vlaue的鍵值對,註釋用英文分號( ; )


讀取.ini配置檔案資訊的操作流程

針對.ini配置檔案,直接使用python自帶的configparser模組讀寫配置檔案


匯入configparser模組:from configparser import ConfigParser


例項化ConfigParser類:config = ConfigParser()


讀取配置檔案:config.read(“配置檔名稱.ini”,encoding=“utf-8”)


獲取配置檔案中某一option的值:val = config.get(“section名稱”,“option名稱”)


config.options(“section名稱”)


獲取當前配置檔案中的所有section:secs = config.sections()


在Python3中,我們一般使用configparser模組來讀取ini檔案

圖片描述

和Python2不同的是,Python2裡面直接conf.read(cfgpath)就可以了,Python3需要加個引數:encoding=“utf-8”

圖片描述


程式碼編寫

分別在common資料夾下新建配置檔案:config.ini 和 讀取配置檔案:readConf.py ,然後編寫程式碼…

圖片描述

配置檔案 :config.ini

以UI自動化中常用的url為例:配置檔案中按照功能模組分為 risk 、rule 、term ;其下的url地址分別代表該模組下某個功能點的url

圖片描述

讀取配置檔案 :readConf.py

以下是封裝好的讀取配置檔案的方法

圖片描述

用例編寫

最佳化前程式碼:

圖片描述

圖片描述

最佳化後程式碼:

圖片描述

圖片描述

經過修改後,每次更新url地址,只需在配置檔案中修改就好了,是不是方便多了~~


接下來我們來看介面自動化中有關.yaml配置檔案的使用方法


.yaml配置檔案

Yaml檔案我們要注意其寫法


k: v 表示一對鍵值對

冒號後面是有一個空格的

以空格的縮排來代表層級關係,對齊代表的就是同一層級

屬性和值也是大小寫敏感

.yaml配置檔案的書寫格式如下(一般使用字典的方式進行書寫):

圖片描述

示例:

圖片描述

在使用.yaml配置檔案時,option與value之間需要有一個空格


讀取.yaml配置檔案資訊的操作流程

針對.yaml配置檔案,需要手動安裝pyyaml:pip install pyyaml


引入yaml模組:import yaml


開啟yaml檔案


呼叫yaml.load函式載入檔案物件,返回值為dict

程式碼示例

圖片描述

具體實現


圖片描述

封裝讀取配置檔案的操作

由於讀取配置檔案資訊的操作流程相對比較固定,因此我們可以其封裝成一個類。
當我們需要使用時,只需引入該模組即可

圖片描述

後話

以上就是Python自動化測試中簡單的讀取配置檔案,羅馬不是一天就能建成的,企業中的自動化測試框架也是如此
去最佳化每個流程、每個模組,這樣帶來的效率提升,才是自動化測試的意義和技術所在

————————————————

版權宣告:本文為CSDN博主「Chaqian」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/Chaqian/article/details/117373641


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4301/viewspace-2797059/,如需轉載,請註明出處,否則將追究法律責任。

相關文章