Python 一招檢測配置檔案是否變更
阿新 • • 發佈:2020-08-27
歡迎關注【無量測試之道】公眾號,回覆【領取資源】,
Python程式設計學習資源乾貨、
Python+Appium框架APP的UI自動化、
Python+Selenium框架Web的UI自動化、
Python+Unittest框架API自動化、
資源和程式碼 免費送啦~
文章下方有公眾號二維碼,可直接微信掃一掃關注即可。
當專案非常多時隨之而來的配置檔案也會變得非常多,而且越發的複雜,有時候上線後才知道線上環境的配置檔案不對,那麼我們如何提前來檢測到配置檔案有改動了,本文將給你提供一個可以檢測的手段。程式碼如下所示:
1、匯入包並指定目錄
1 import hashlib 2 import os 3 fromqqAnalyse.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自動化測試等,微信搜尋公眾號:“無量測試之道”,或掃描下方二維碼:
新增關注,讓我們一起共同成長!