1. 程式人生 > 實用技巧 >Python 一招檢測配置檔案是否變更

Python 一招檢測配置檔案是否變更

歡迎關注【無量測試之道】公眾號,回覆【領取資源】,
Python程式設計學習資源乾貨、
Python+Appium框架APP的UI自動化、
Python+Selenium框架Web的UI自動化、
Python+Unittest框架API自動化、

資源和程式碼 免費送啦~
文章下方有公眾號二維碼,可直接微信掃一掃關注即可。

當專案非常多時隨之而來的配置檔案也會變得非常多,而且越發的複雜,有時候上線後才知道線上環境的配置檔案不對,那麼我們如何提前來檢測到配置檔案有改動了,本文將給你提供一個可以檢測的手段。程式碼如下所示:

1、匯入包並指定目錄

1 import hashlib
2 import os
3 from
qqAnalyse.conndb import conndb 4 5 #定義要處理md5值的目錄 6 path="D:\\tool\\elasticsearch-head-master\\elasticsearch-head-master"

2、初始化配置檔案的md5值併入庫

1 #初始化配置檔案的md5值併入庫
2 def init_md5():
3     filelist = []
4     filelist = get_file(path, filelist)
5     for i in range(len(filelist)):
6         md5v=get_md5_file(filelist[i])
7 insert_sql="INSERT INTO mdFiveFile (filename,filemd) VALUES ('"+filelist[i]+"','"+str(md5v)+"');" 8 db = conndb() 9 db.execute_sql(insert_sql)

3、檢測新配置檔案的md5值是否變化

 1 #檢查新的配置檔案md5值是否有改變,有改變則打印出來
 2 def check_md5():
 3     filelist = []
 4     filelist = get_file(path, filelist)
5 for i in range(len(filelist)): 6 md5v = get_md5_file(filelist[i]) 7 selectsql = "select filemd from mdFiveFile where filename='" + filelist[i] + "';" 8 # print(selectsql) 9 db = conndb() 10 md5=db.select_sql(selectsql)[0] 11 if(md5!=md5v): 12 print(str(filelist[i])+"--- please check the file,maybe it's update") 13 else: 14 print("the check is ok")

4、檔案進行md5加密處理

1  
2 #針對傳入的檔案計算md5的值
3 def get_md5_file(file_name):
4     with open(file_name, 'rb') as fp:
5         data = fp.read()
6         # print(data)
7     file_md5= hashlib.md5(data).hexdigest()
8     return file_md5

5、遍歷指定目錄下檔案

 1 #遍歷上面指定目錄下的所有檔案
 2 def get_file(path,filelist):
 3     file_list = os.listdir(path)# 首先遍歷當前目錄所有檔案及資料夾
 4     # print(file_list)
 5     for file in file_list:
 6         cur_path = os.path.join(path, file)# 利用os.path.join()方法取得路徑全名,並存入cur_path變數,否則每次只能遍歷一層目錄
 7         if os.path.isdir(cur_path):
 8             get_file(cur_path,filelist)
 9         else:
10             if(str(file).endswith("bak")):
11                 filelist.append(cur_path)
12     return filelist

6、程式碼執行入口

1 if __name__ == '__main__':
2     # init_md5()
3     check_md5()

總結:我們首先要確定我們要檢測的配置檔案,然後將它的當前的md5值進行初始化到資料庫,當下次釋出前我們可以針對性的進行一次檢測,發現有變更就會提示出來,這樣就可以做到提前知曉變更的配置檔案,再人工介入進行重點檢查。

備註:我的個人公眾號已正式開通,致力於測試技術的分享,包含:大資料測試、功能測試,測試開發,API介面自動化、測試運維、UI自動化測試等,微信搜尋公眾號:“無量測試之道”,或掃描下方二維碼:

新增關注,讓我們一起共同成長!