python3+requests庫框架設計04-配置檔案
阿新 • • 發佈:2019-01-26
python3配置檔案的增刪改查等操作可以使用內建的ConfigParser模組,可以自行百度學習,也可以看 Python3學習筆記27-ConfigParser模組
配置檔案一般存放著環境資訊,比如url和一些測試過程中後續需要用到的欄位。還有測試中需要匯入,匯出的一些檔案。在專案下新建Config資料夾,資料夾下新建config.ini檔案。專案結構如下
實際專案介面測試中,介面url前面很大一部分都是相同的,只有後面一小部分是不同的,那可以把相同部分放在配置檔案中,這樣就可以通過配置檔案去控制,想要測試 測試環境 還是 生產環境。
那我們就需要對配置檔案的增刪改查進行封裝
在Common資料夾下,對Base_test.py檔案新增全域性變數
path = getcwd.get_cwd()
config_path = os.path.join(path, 'Config/config.ini')
上面程式碼是為了提供配置檔案的路徑,接下來是封裝配置的檔案的增刪改查
def config_get(self,section,key,url=None): '''讀取配置檔案欄位的值並返回''' config = configparser.ConfigParser() config.read(config_path,encoding="utf-8-sig") if key =='url': config_url = config.get(section,key) url = config_url+url log1.info("請求的url:%s" % url) return url else: config_get = config.get(section,key) return config_get def config_write(self,section,key = None,value = None): '''往配置檔案寫入鍵值''' config = configparser.ConfigParser() config.read(config_path,encoding="utf-8-sig") if key is not None and value is not None: config.set(section,key,value) with open(config_path,'w',encoding='utf-8')as f : config.write(f) else: config.add_section(section) with open(config_path,'w',encoding='utf-8')as f : config.write(f) def config_delete(self,section,key = None): '''刪除配置檔案欄位''' config = configparser.ConfigParser() config.read(config_path,encoding="utf-8-sig") if key is not None : config.remove_option(section,key) with open(config_path,'w',encoding='utf-8')as f : config.write(f) else: config.remove_section(section) with open(config_path,'w',encoding='utf-8')as f : config.write(f)
並沒有加日誌,有需要的可以自己加,中間encoding都是防止對配置檔案進行中文的操作,不加這些會報錯的。那接下來測試一下看看
from Common.Base_test import webrequests from Logs.log import log1 section = 'login' username = '測試' password = '一下' s = webrequests() s.config_write(section) log1.info("寫入section:%s" % section) s.config_write(section,'username',username) log1.info("寫入%s下的使用者名稱是:%s" %(section,username)) s.config_write(section,'password',password) log1.info("寫入%s下的密碼是:%s" %(section,password)) url = s.config_get('test','url',url='test/test1') get_username = s.config_get(section,'username') log1.info("讀取的使用者名稱:%s" % get_username) get_password = s.config_get(section,'password') log1.info("讀取的密碼:%s" % get_password) s.config_delete(section,'usrename',) log1.info("刪除%s下的username" % section) s.config_delete(section,'password') log1.info("刪除%s下的password" % section) s.config_delete(section) log1.info("刪除%s" % section)
可以先寫,再讀,最後刪除,把操作分開,看控制檯輸出和配置檔案中的變化會更加直觀。我這裡懶得一步步截圖了