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自動化測試等,微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:

 添加關注,讓我們一起共同成長!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM