歡迎關注【無量測試之道】公眾號,回復【領取資源】,
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自動化測試等,微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:
添加關注,讓我們一起共同成長!