在測試自動化中,我們常需針對不同環境進行測試,例如這些環境可能有不同的登入帳號和密碼。這時設定檔就顯得非常重要,我們儘量避免將登入帳號、使用者名稱或密碼之類的資訊嵌在程式碼中。除了機密性之外,每次修改設定資訊時都需要修改程式碼,會變得很麻煩且容易出錯。為了解決這些問題,我們可以使用Python中的configparser模組來讀取設定檔。這樣可以將設定資訊與程式碼分離,並且在不同的環境中重複使用相同的設定檔,易於維護。
如何使用configparser讀取設定檔
以下是如何使用Python的configparser模組來讀取INI格式的設定檔,並在測試中使用這些設定資訊。1. 建立設定檔
首先,我們創建一個INI格式的設定檔 (qa.ini) 來儲存帳號、密碼等資訊:[gmail]
url=qa.gmail.com
user = gmail_user1
pass = gmail_pass1
[outlook]
url=qa.outlook.com
user=outlook_user1
pass=outlook_pass1
2. 使用configparser讀取設定檔
接著,我們使用configparser模組來讀取設定檔中的資訊:import configparserfrom pathlib import Path #用來處理檔案路徑的模組cfgFile = 'qa.ini'cfgFileDirectory = 'config' #設定檔的目錄config = configparser.ConfigParser() #建立ConfigParser物件BASE_DIR = Path(__file__).resolve().parent.parentCONFIG_FILE = BASE_DIR.joinpath(cfgFileDirectory).joinpath(cfgFile) #建構完整的設定檔路徑
config.read(CONFIG_FILE) #讀取設定檔def getGmailUrl():return config['gmail']['url'] #獲取Gmail的URLdef getGmailUser():return config['gmail']['user'] #獲取Gmail的使用者名稱def getGmailPass():return config['gmail']['pass'] #獲取Gmail的密碼print(getGmailUrl())
3. 測試函式
from Pytest_Topics.utils.myconfigparser import get_gmail_urldef test_get_gmail_url():print(get_gmail_url())
當執行這些測試時,就能夠正確獲得設定檔中的值,並且顯示預期的結果:
沒有留言:
張貼留言