㈠ 使用yaml文件管理測試數據
知道ddt的基本使用方法之後,練習把之前用excel文件來維護的介面測試用例改用unittest+ddt來實現。
這里我選用yaml文件來管理介面參數,開始本來想用json,但是json無法添加註釋,可讀性不好。
下面截圖是介面文檔中的各個介面,每個介面都有一個固定的序號,所以在設計每個介面的測試數據時,以序號來區分不同介面
yaml文件內容如下,需要注意的是yaml的語法:
(1)鍵值對用冒號分割,但是冒號後需要加一個空格
(2)禁止使用tab縮進,只能使用空格鍵;縮進長度沒有限制,只要元素對齊就表示這些元素屬於一個層級
(3)字元串可以不用引號標注,也可以加引號,如果想把數字變為字元串,加引號即可
(4)使用#表示注釋
詳情可以參考博客: https://blog.csdn.net/vincent_hbl/article/details/75411243
2. 簡單 demo : python 讀取 yaml 文件,取出介面參數
import yaml
fp = open('../dataconfig/信息互動模塊介面.yaml', encoding='utf-8') #有中文字元的話,加編碼格式
testdata = yaml.load(fp)
t = testdata['5.2.1.4']
print(t)
(1)封裝讀取yaml文件方法
handle_yaml.py
# coding: utf-8
# author: hmk
importyaml
importos
classHandleYaml:
def __init__(self,file_path=None):
if file_path:
self.file_path = file_path
else:
root_dir =os.path.dirname(os.path.abspath('.'))
# os.path.abspath('.')表示獲取當前文件所在目錄;os.path.dirname表示獲取文件所在父目錄;所以整個就是項目的所在路徑self.file_path = root_dir +'/dataconfig/信息互動模塊介面.yaml' #獲取文件所在的相對路徑(相對整個項目)
#elf.data = self.get_data()
def get_data(self):
fp =open(self.file_path, encoding='utf-8')
data =yaml.load(fp)
return data
if __name__ == '__main__':
test = HandleYaml()
p = test.get_data()
print(p['5.2.1.1'])
[if !vml][endif]
(2)封裝requests請求方法
[if !vml][endif]
# coding: utf-8
# author: Archer
importrequests
importjson
classRunMethod:
defpost_main(self, url, data, header=None):if header is notNone:
res =requests.post(url=url, data=data, headers=header)
else:
res =requests.post(url=url, data=data)
# print(res.status_code)
# return res.json()
return res #為了方便後面斷言,這里不再對伺服器響應進行json格式編碼
def get_main(self, url, data=None, header=None):if header is notNone:
res =requests.get(url=url, params=data, headers=header)
else:
res =requests.get(url=url, params=data)
print(res.status_code)
# return
res.json()
return res
def run_main(self, method, url, data=None, header=None):
if method== 'POST':
res =self.post_main(url, data, header)
else:
res =self.get_main(url, data, header)
returnres
# returnjson.mps(res, indent=2, sort_keys=False, ensure_ascii=False) #使用json模塊格式化顯示結果
[if !vml][endif]
(3)一個介面測試用例
[if !vml][endif]
# coding: utf-8
# author: Archer
importunittest
importddt
from base.run_method importRunMethod
from utils.handle_yaml importHandleYaml
get_data = HandleYaml() # 從yaml文件中取出該介面的參數
params = get_data.get_data()['5.2.1.4']
@ddt.ddt
classTest(unittest.TestCase):
"""載入咨詢詳情介面"""
defsetUp(self):
self.url ='http://localhost:8088/ApprExclusiveInterface/api/enterprise/info/consult/loadDetail.v'
self.run =RunMethod()
@ddt.data(*params)
deftest(self, value):
r =self.run.run_main("GET", self.url, value)
print(r)
self.assertTrue(value['assert'] inr.text)
if __name__ == '__main__':
unittest.main()
(4)利用HTMLTestRunner生成測試報告
run_report.py
# coding: utf-8
# author: hmk
from HTMLTestRunner importHTMLTestRunner
importunittest
importtime, os
root_dir = os.path.dirname(os.path.abspath('.')) # 獲取當前文件所在目錄的父目錄的絕對路徑,也就是項目所在路徑E:\DDT_Interface
case_dir = root_dir + '/test_case/' # 根據項目所在路徑,找到用例所在的相對項目的路徑
print(root_dir)
print(case_dir)
"""定義discover方法"""
discover = unittest.defaultTestLoader.discover(case_dir,
pattern='test*.py', top_level_dir=None)
"""
1.case_dir即測試用例所在目錄
2.pattern='test_*.py' :表示用例文件名的匹配原則,「*」表示任意多個字元
3.top_level_dir=None:測試模塊的頂層目錄。如果沒頂層目錄(也就是說測試用例不是放在多級目錄中),默認為None
"""
if __name__ == "__main__":
"""直接載入discover"""
now = time.strftime("%Y-%m-%d%H_%M_%S")
filename = root_dir +'/report/' + now + '_result.html' #定義報告存放路徑
print(filename)
fp = open(filename,'wb')
runner =HTMLTestRunner(stream=fp, title='個人網企業網介面測試報告', description='測試結果如下: ')
runner.run(discover)
fp.close()
ok ,unittest+ddt進行介面測試就完成了,還有很多不足,yaml配置文件還可以繼續設計優化,例如可以把請求url也加進去。
其實感覺如何設計測試用例,組織測試數據也是一件很有意思的事情,很多事情都必須先有一個良好的設計思路才會進行的更順暢。總之勤於思考,多參考他人的思路。不是有句話嗎,學而不思則罔,思而不學則殆。
㈡ 數據質量的控制方法
一個戰略性和系統性的方法能幫助企業正確研究企業的數據質量項目,業務部門與 IT 部門的相關人員將各自具有明確角色和責任,配備正確的技術和工具,以應對數據質量控制的挑戰。
Informatica 的六步法為幫助指導數據質量控制而設計,從初始的數據探查到持續監測以及持續進行的數據優化。業務部門與 IT 部門的數據使用者 — 業務分析師、數據管理員、IT 開發人員和管理員,能夠在六個步驟的每一步中協同使用 Informatica 數據質量解決方案;並在整個擴展型企業的所有數據領域和應用程序中嵌入數據質量控制。
步驟一:探查數據內容、結構和異常
第一步是探查數據以發現和評估數據的內容、結構和異常。通過探查,可以識別數據的優勢和弱勢,幫助企業確定項目計劃。一個關鍵目標就是明確指出數據錯誤和問題,例如將會給業務流程帶來威脅的不一致和冗餘。
步驟二:建立數據質量度量並明確目標
Informatica的數據質量解決方案為業務人員和IT人員提供了一個共同的平台建立和完善度量標准,用戶可以在數據質量記分卡中跟蹤度量標準的達標情況,並通過電子郵件發送URL來與相關人員隨時進行共享。
步驟三:設計和實施數據質量業務規則
明確企業的數據質量規則,即,可重復使用的業務邏輯,管理如何清洗數據和解析用於支持目標應用欄位和數據。業務部門和IT部門通過使用基於角色的功能,一同設計、測試、完善和實施數據質量業務規則,以達成最好的結果。
步驟四:將數據質量規則構建到數據集成過程中
Informatica Data Quality支持普遍深入的數據質量控制,使用戶可以從擴展型企業中的任何位置跨任何數量的應用程序、在一個基於服務的架構中作為一項服務來執行業務規則。數據質量服務由可集中管理、獨立於應用程序並可重復使用的業務規則構成,可用來執行探查、清洗、標准化、名稱與地址匹配以及監測。
步驟五:檢查異常並完善規則
在執行數據質量流程後,大多數記錄將會被清洗和標准化,並達到企業所設定的數據質量目標。然而,無可避免,仍會存在一些沒有被清洗的劣質數據,此時則需要完善控制數據質量的業務規則。Informatica Data Quality可捕獲和突顯數據質量異常和異常值,以便更進一步的探查和分析。
步驟六:對照目標,監測數據質量
數據質量控制不應為一次性的「邊設邊忘」活動。相對目標和在整個業務應用中持續監測和管理數據質量對於保持和改進高水平的數據質量性能而言是至關重要的。Informatica Data Quality包括一個記分卡工具,而儀錶板和報告選項則具備更為廣泛的功能,可進行動態報告以及以更具可視化的方式呈現。 上面介紹的Informatica六步法,該方法運用Informatica數據質量解決方案,提供公司所需要的各種數據質量管理能力,並確保其所有數據均是完整的、一致的、准確的、通用的。該解決方案包括幾個針對特定用途優化的組件:
Informatica Data Explorer運用基於角色的工具可促進業務部門與IT部門之間的協作,該數據探查軟體發現和分析任何來源中任何類型數據的內容、結構和缺陷。
Informatica Data Quality軟體執行清洗、解析、標准化和匹配流程並使得可視記分卡和儀表盤上的持續監測得以進行。與Informatica data Explorer類似,它特有基於角色的工具,業務部門和IT部門可以藉此得以協同工作。
Informatica Identity Resolution軟體能使各機構從60多個國家/地區以及各企業和第三方應用程序中搜尋和匹配一致數據。 Informatica數據質量解決方案為業務部門與IT部門間的協作提供基礎。其基於角色的工具特色設計使得業務分析師、數據管理員、IT開發人員和管理員能夠充分利用他們獨特的技能體系,並在流程中與所有相關人員溝通。
Informatica Analyst:適用於業務分析師和數據管理員。通過用語義術語表述數據,該款基於瀏覽器的工具使分析師和數據管理員能夠探查數據、創建和分析質量記分卡、管理異常記錄、開發和使用規則,以及與IT部門展開協作。
Informatica Developer: 適用於IT開發人員。這個基於Eclipse的開發環境允許開發人員發現、訪問、分析、探查和清晰處於任何位置的數據。開發人員可以為邏輯數據對象建模,將數據質量規則與復雜轉換邏輯合並,並在邏輯制定後,進行中游探查以驗證和調試邏輯。
Informatica Administrator: 適用於IT管理員。該工具為IT管理員帶來集中配置和管理的能力。管理員可以監測和管理安全性、用戶訪問、數據服務、網格和高可用性配置。
㈢ 數據質量控制通常做法
數據質量控制通常做法如下:
步驟一:探查數據內容、結構和異常
第一步是探查數據以發現和評估數據的內容、結構和異常。通過探查,可以識別數據的優勢和弱勢,幫助企業確定項目計劃。一個關鍵目標就是明確指出數據錯誤和問題,例如將會給業務流程帶來威脅的不一致和冗餘。
步驟二:建立數據質量度量並明確目標
Informatica的數據質量解決方案為業務人員和IT人員提供了一個共同的平台建立和完善度量標准,用戶可以在數據質量記分卡中跟蹤度量標準的達標情況,並通過電子郵件發送URL來與相關人員隨時進行共享。
步驟三:設計和實施數據質量業務規則
明確企業的數據質量規則,即,可重復使用的業務邏輯,管理如何清洗數據和解析用於支持目標應用欄位和數據。業務部門和IT部門通過使用基於角色的功能,一同設計、測試、完善和實施數據質量業務規則,以達成最好的結果。
步驟四:將數據質量規則構建到數據集成過程中
Informatica Data Quality支持普遍深入的數據質量控制,使用戶可以從擴展型企業中的任何位置跨任何數量的應用程序、在一個基於服務的架構中作為一項服務來執行業務規則。
數據質量服務由可集中管理、獨立於應用程序並可重復使用的業務規則構成,可用來執行探查、清洗、標准化、名稱與地址匹配以及監測。
步驟五:檢查異常並完善規則
在執行數據質量流程後,大多數記錄將會被清洗和標准化,並達到企業所設定的數據質量目標。然而,無可避免,仍會存在一些沒有被清洗的劣質數據,此時則需要完善控制數據質量的業務規則。Informatica Data Quality可捕獲和突顯數據質量異常和異常值,以便更進一步的探查和分析。
步驟六:對照目標,監測數據質量
數據質量控制不應為一次性的「邊設邊忘」活動。相對目標和在整個業務應用中持續監測和管理數據質量對於保持和改進高水平的數據質量性能而言是至關重要的。
Informatica Data Quality包括一個記分卡工具,而儀錶板和報告選項則具備更為廣泛的功能,可進行動態報告以及以更具可視化的方式呈現。
數據質量控制流程
第一階段:啟動
在這個階段我們需要根據所在機構的現行組織架構和工作規范基礎上,建立一套質量管控流程和規范。如建立質量管控委員會、制定質量管控管控辦法等。
質量管控委員會不必是全職,可由現有組織中如信息中心相關人員兼任。數據質量管控辦法,則應明確質量管控的角色、職責,建立可執行的工作流程、可量化的工作評估方法,同時也應具備績效考核、沖突解決與管控方式等。
有了流程和規范後,相應的責任人就應明確本輪質量管控的目標。如:數據質量提升范圍,或者是滿足一些業務的預期。目標制定完成後我們就可以進入下一個執行階段了。
第二階段:執行
進入執行階段,我們就要開始具體的質量管控工作,整個工作應該圍繞啟動階段制定的目標進行。這時我們應該適當引入一些質量管控工具來幫助我們更高效地完成我們的工作。
第三階段:檢查
檢查階段,主要是對執行階段的成果進行檢查並分析原因。
第四階段:處理(本環節一般包括以下2個方面):
1、監控數據質量,控制管理程序和績效
根據既定的操作程序,對質量管控過程中各個環節參與者進行績效評估。還可以根據不同時期的重點的制定不同的評分標准,有針對性地進行評價和管控,如整改初期數據缺失嚴重,則可對完整性規則權重調大,以期更快看到成效或者達到更好的效果。
2、建立質量控制意識與文化
在這里溝通與推廣是重點,要讓所有參與者了解數據質量問題和其實質影響,宣貫系統化的數據質量管控方法,同時挖掘對各個環節參與者的價值,尤其是業務方,傳達一種「數據質量問題不能只靠技術手段解決」的意識。最終形成一種數據質量的管理的文化。
㈣ 如何有效的進行數據治理和數據管控
大數據時代的到來,讓政府、企業看到了數據資產的價值,並快速開始 探索 應用場景和商業模式、建設技術平台。但是,如果在大數據拼圖中遺忘了數據治理,那麼做再多的業務和技術投入也是徒勞的,因為很經典的一句話:Garbage in Garbage out。
當你處理或使用過大量數據,那麼對「數據治理」這個詞你一定不會陌生。你會思考數據治理是什麼?數據治理是否適合你?如何實施。簡單來說,數據治理就是處理數據的策略——如何收集、驗證、存儲、訪問、保護和使用數據。數據治理也還包括誰來查看,使用,共享你的數據。
隨著大數據時代的推進,以上這些問題日益突出,越來越多的企業依賴採集、治理、儲存和分析數據,並實現他們的商業目標。數據變成了企業的盈利工具、業務媒介和商業機密。數據泄露會導致法律糾紛,還會令消費者對公司的核心業務失去信心。
如果抱著僥幸的心理,讓各個業務部門自己管理數據,那麼你會缺乏有效的數據管理,甚至各部門會自己做自己的。你無法想像各個部門按隨心所欲地自己生產、儲存、銷售產品。數據使用不當就像庫存使用不當一樣,會給企業造成沉重的損失。因此必須制定一項測量用以保證所需數據的有效和安全,可用性,這就是我們要談的「數據治理」。
數據治理策略必須包含完整的數據生命周期。策略必須包含從數據採集、清洗到管理,在這個生命周期內,數據治理必須要有關注以下內容:
數據從哪裡來,數據怎麼來
這是數據生命周期的起點。數據來源決定了數據治理策略的基礎。例如數據集的大正乎腔小就由數據來源所決定。是從目標市場、現存用戶和社交媒體收集數據?還是使用第三方收集數據或者分析你收集的數據?輸入數據流是什麼?數據治理必須關注這些問題,並制定策略來管理數據的採集,引導第三方處理他們收集的數據或者分析你收集的數據,控制數據的路徑和生命周期。
數據校驗
通常數據源都是非常龐大且多樣的,這是一個讓數據管理者非常頭疼的問題。將數據噪音和重要數據進行區分僅僅只是開始,如果你正從關聯公司收集數據,你必須確保數據是可靠的,對於那些幾萬、幾十萬、甚至成百上千萬的復雜關系數據,單靠人為的通過Excel對進行數據清洗已經不太現實,需要專業的數據舉衫清洗工具或系統對海量復雜關系數據進行批量查詢、替換、糾正、豐富以及存儲。將元數據、主數據、交易數據、參考數據以及數據標准內置固化到數據清洗工具或系統中,結合組織架構、內容管控、過程管控等管理機制、技術標准提高數據治理人員的工作頃孝效率。比如:需要手工編寫程序收集的元數據,系統幫你自動獲取;需要人工識別或編寫代碼實現的數據質量檢查,系統幫你自動識別問題;用文檔管理的數據字典,系統幫你在線管理;基於郵件和線下的流程,系統幫你線上自動化。當然,系統並不是萬能的,數據治理的軟體工具與其他軟體工具一樣,沒有什麼神奇之處,沒有數據治理人員的參與和數據治理工作的推進,軟體再完美也無法完成數據治理整個過程。這也是為什麼數據治理咨詢服務一直有其市場,以及為什麼國內大部分單純數據治理軟體項目未能達到預期目標。
數據治理必須解決存儲問題
而數據存儲和數據集的大小有密切關系。大數據的存儲必須是在安全的冗餘系統之中。常常利用層次體系,根據使用頻率來存儲數據。這樣一來,昂貴的在線系統提供的是被頻繁請求的數據,而請求頻率較低的數據則存儲在便宜,可用率較低的系統上。當然,一些請求頻率低但是敏感的數據如果存儲於安全性較低的系統上,風險會大大提升。因此,在制定數據存儲方案時,良好的數據治理策略必須考慮到方方面面的因素。
數據治理必須建立訪問管理制度,在需求和安全性找到平衡點
明確訪問者的許可權,只能訪問他們對應許可權包含的數據。只有合法請求才能夠訪問數據,而敏感的數據需要更高的許可權和更嚴密的驗證才可以被訪問。只向具有特定安全級別的用戶開放。應該對用戶和數據本身設置訪問級別,管理賬戶時,應與人力資源部和采購部緊密互動,這一點非常重要,因為這樣可以及時地使離職員工和停止合作的供應商不再擁有訪問許可權。處理好這些細節以及確保數據所有權和責任,這是構成完整的數據治理策略的一部分。
數據的使用/共享/分析
如何使用數據是數據治理之後一項重要的內容,數據可能會用於客戶管理,提高客戶體驗,投放定向廣告,用戶應用系統初始化基礎數據工作,輔助應用系統建設,提供市場分析和關聯公司共享數據。必須仔細界定哪些數據可用於共享或者用於營銷,並保護它們免遭攻擊和泄露,因為數據本來就應該被用於純粹的內部用途。讓用戶知悉採集數據的所有公司都會遵守數據安全和保證的規定。能夠確保數據被合理合規的使用,也是數據治理重要的一項內容。
收集、驗證、存儲、訪問和使用都是數據安全計劃的必要組成部分
收集、驗證、存儲、訪問和使用都是數據安全計劃的必要組成部分,必須要有一個全面的策略來解決這些問題以及其他安全問題。數據安全計劃必須是有效且可用性高,但是數據生命周期的所有部分都很容易受到攻擊和由於粗心造成的破壞。你必須在數據治理中確定數據安全計劃,包括訪問控制,靜態數據,數據加工,數據傳輸之後的加密等。
管理/元數據
沒有管理的數據生命周期是不完整的。例如,將元數據應用於一段數據,用來進行識別檢索。元數據包含數據的來源,採集或生成的日期,信息訪問的級別,語義分類及其他企業所必須的信息。數據治理能建立一個元數據詞彙表,界定數據的有效期。請注意數據也會過期,過期之後我們只能用於 歷史 數據的分析。
數據治理創建的過程中可能會在企業內部遭到一些阻力,比如有的人會害怕失去訪問數據的許可權,而有些人也不願意和競爭者共享數據。數據治理政策需要解決上述問題,讓各方面的人都可接受。習慣了數據筒倉環境的公司,在適應新的數據治理策略上面會有困難,但如今對大型數據集的依賴以及隨之而來的諸多安全問題,使創建和實施覆蓋全公司的數據策略成為一種必然。
數據日益成為企業基礎設施的一部分,在企業一步步處理各種特定情況的過程中形成決策。它以一次性的方式作出,常常是對某一特定問題的回應。因此,企業處理數據的方法會因為不同部門而改變,甚至會因為部門內部的不同情況而改變。即使每個部門已經有一套合理的數據處理方案,但這些方案可能彼此沖突,企業將不得不想辦法協調。弄清數據存儲的要求和需求是一件難事,如果做得不好,就無法發揮數據在營銷和客戶維系方面的潛力,而如果發生數據泄露,你還要承擔法律責任。
另外在大企業內部,部門之間會展開對數據資源的爭奪,各部門只關注自身的業務情況,缺乏全局觀念,很難在沒有調解的情況下達成妥協。
因此公司需要一個類似數據治理委員會的機構,他的職責是執行現有數據策略、挖掘未被滿足的需求以及潛在安全問題等,創建數據治理策略,使數據的採集、管護、儲存、訪問以及使用策略均實現標准化,同時還會考慮各個部門和崗位的不同需求。平衡不同部門之間存在沖突的需求,在安全性與訪問需求之間進行協調,確保最高效、最安全的數據管理策略。
建立數據治理委員會
負責評估各個數據用戶的需求,建立覆蓋全公司的數據管理策略,滿足內部用戶、外部用戶甚至法律方面的各種需求。該委員會的成員應該囊括各個業務領域的利益相關者,確保各方需求都得到較好地滿足,所有類型的數據所有權均得到體現。委員會也需要有數據安全專家,數據安全也是重要的一環。了解數據治理委員會的目標是什麼,這一點很重要,因此,應該思考企業需要數據治理策略的原因,並清楚地加以說明。
制定數據治理的框架
這個框架要將企業內部、外部、甚至是法律層面的數據需求都納入其中。框架內的各個部分要能夠融合成一個整體,滿足收集、清洗、存儲、檢索和安全要求。為此,企業必須清楚說明其端到端數據策略,以便設計一個能夠滿足所有需求和必要操作的框架。
有計劃地把各個部分結合起來,彼此支持,這有很多好處,比如在高度安全的環境中執行檢索要求。合規性也需要專門的設計,成為框架的一部分,這樣就可以追蹤和報告監管問題。這個框架還包括日常記錄和其他安全措施,能夠對攻擊發出早期預警。在使用數據前,對其進行驗證,這也是框架的一部分。數據治理委員會應該了解框架的每個部分,明確其用途,以及它如何在數據的整個生命周期中發揮作用。
數據測試策略
通常一個數據策略需要在小規模的商用環境中進行測試,用來發現數據策略在框架,結構和計劃上的不足之處並進行調整,之後才能夠投入正式使用。
數據治理策略要與時俱進
隨著數據治理策略延伸到新的業務領域,肯定需要對策略進行調整。而且,隨著技術的發展,數據策略也應該發展,與安全形勢、數據分析方法以及數據管理工具等保持同步。
明確什麼是成功的數據策略
我們需要確立衡量數據治理是否成功的明確標准,以便衡量進展。制定數據管理目標,有助於確定成功的重要指標,進而確保數據治理策略的方向是符合企業需求。
無論企業大小,在使用數據上都面臨相似的數據挑戰。企業越大,數據越多,而數據越多,越發需要制定一個有效的,正式的數據治理策略。規模較小的企業也許只需要非正式的數據治理策略就足夠了,但這只限於那些規模很小且對數據依賴度很低的公司。即便是非正式的數據治理計劃也需要盡可能考慮數據用戶和員工數據的採集、驗證、訪問、存儲。
當企業規模擴大,數據需求跨越多個部門時,當數據系統和數據集太大,難以駕馭時,當業務發展需要企業級的策略時,或者當法律或監管提出需求時,就必須制定更為正式的數據治理策略。