1. 程式人生 > >python:實例化configparser模塊讀寫配置文件

python:實例化configparser模塊讀寫配置文件

txt 號碼 DBName edr tty 示例代碼 免費註冊 word mat

之前的博客介紹過利用python的configparser模塊讀寫配置文件的基礎用法,這篇博客,介紹下如何實例化,方便作為公共類調用。

實例化的好處有很多,既方便調用,又降低了腳本的維護成本,而且提高了代碼的可讀性。。。

1、配置文件

configparser模塊支持讀取.conf和.ini等類型的文件,在文件夾新建一個.ini文件,寫入一些信息,示例如下:

config.ini

[driver]
chromedriver = E:\automation\UI\Testcase\browser\chromedriver.exe
[homepage]
url = https://www.sougou.com/
[signup]
name = E:\automation\UI\Testdata\signup-data.csv
[login]
name = E:\automation\UI\Testdata\login-data.csv
[sign_user]
name = E:\automation\UI\Testdata\sign_user.csv
[sign_mobile]
name = E:\automation\UI\Testdata\sign_mobile.csv
[sign_pwd]
name = E:\automation\UI\Testdata\sign_pwd.csv
[vip_user]
name = E:\automation\UI\Testdata\vip_user.csv
[serach]
name = E:\automation\UI\Testdata\search.csv
[DATABASE]
host = 10.0.0.1
username = TEST
password = test
dbname = Test
[HEADERS]
contentType = application/x-www-form-urlencoded
[HTTP]
url = https://baidu.com
login = https://github.com

2、configparser讀取配置信息並實例化

可以將要訪問的url地址、讀取的數據文件路徑、數據庫信息等寫入配置文件,然後利用configparser模塊讀取,然後實例化,示例代碼如下:

readConfig.py

# coding=utf-8
import os
from configparser import ConfigParser

# 獲取絕對路徑
BASE_DIR = os.path.dirname(__file__)
CONFIG_FILE_PATH = os.path.join(BASE_DIR, "config.ini")  # 配置文件名稱

class MyConfig:
    
def __init__(self): config = ConfigParser() config.read(CONFIG_FILE_PATH) self.browerDriver = config.get("driver", "chromedriver") # 瀏覽器驅動 self.homedoUrl = config.get("homepage", "url") # 搜狗url self.signupData = config.get("signup","name") #
用戶註冊測試數據 self.loginData = config.get("login","name") # 用戶登錄測試數據 self.signUser = config.get("sign_user","name") # 註冊用戶數據 self.signMobile = config.get("sign_mobile","name") # 註冊用戶手機號碼 self.signPwd = config.get("sign_pwd","name") # 註冊用戶密碼 self.vipUser = config.get("vip_user","name") # 生產白名單測試賬號 self.search = config.get("serach","name") # 搜索數據 self.contentType = config.get("HEADERS", "contentType") # 請求頭連接類型 self.URL = config.get("HTTP", "url") # 百度URL self.loginURL =config.get("HTTP", "login") # github的URL myconfig = MyConfig()

3、調用實例化的配置信息

將我們需要的信息實例化後封裝,在需要的時候,直接調用即可,示例代碼(測試手機驗證碼)如下:

test_mobcode.py

# coding=utf-8
from selenium import webdriver
from readConfig import myconfig
from selenium.webdriver.common.by import By
import unittest,time

class MobCodeTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(myconfig.browerDriver) # 調用實例化後的瀏覽器驅動
        self.driver.maximize_window()
        self.url = myconfig.homedoUrl # 調用實例化後的請求url
    
    def test_mobcode(self):
        driver = self.driver
        driver.get(self.url)
        driver.implicitly_wait(3)
        driver.find_element_by_link_text("免費註冊").click()
        driver.find_element_by_id("txtMobileCode").send_keys("1234")
        driver.find_element_by_class_name("login-btn").click()

        # 定位報錯提示元素並斷言,打印出來
        error = driver.find_element_by_xpath("//*[@id=\"loginForm\"]/div/dl[2]/dd/p")
        print(error.text)
        self.assertIsNotNone(error.text)

    def tearDown(self):
        self.driver.close()

suite = unittest.TestSuite()
suite.addTest(MobCodeTest("test_mobcode"))
runner = unittest.TextTestRunner()
runner.run(suite)

可以想象,如果不將url、驅動路徑等寫入配置文件,而是直接寫入腳本,那麽腳本本身的維護成本將變得很大,而且可讀性也並不好。

對於自動化測試動輒幾十上百條測試用例來說,這將是一場災難。。。

以上內容僅供參考,其中某些敏感信息已經脫敏,望理解。。。

python:實例化configparser模塊讀寫配置文件