自動化測試的每次執(zhí)行,都會產(chǎn)生大量的日志信息。特別是當(dāng)執(zhí)行發(fā)生錯誤,比如數(shù)據(jù)庫異常、通訊異常等情況的時候,大量執(zhí)行的自動化測試用例會報錯。
實際上,很多錯誤的類型是比較類似的,但由于測試用例的數(shù)量很大,比如一次執(zhí)行20,000個測試用例,可能會產(chǎn)生500個錯誤。逐個分析500個錯誤日志,是一件非常消耗時間的工作。
因此,TestOne提供了自動分類算法,幫助我們首先把錯誤的日志分成不同的類型,這樣我們就可以批量處理相同類型的日志,從而大大節(jié)省了處理時間。
TestOne是澤眾軟件自主研發(fā)的一體化測試系統(tǒng),基于B/S 體系結(jié)構(gòu),集自動化項目管理、測試需求管理、測試用例管理、缺陷問題管理、自動化測試執(zhí)行管理、遠(yuǎn)程真機(jī)調(diào)試、移動腳本設(shè)計等功能于一體,覆蓋了GUI界面功能自動化測試、接口自動化測試、移動自動化測試、移動APP性能測試等測試類型,完整覆蓋自動化測試項目的全過程,可快速將自動化測試管理體系建立,提高測試效率與質(zhì)量。
下面,我們就來介紹一下TestOne的日志處理。
日志存放
當(dāng)我們執(zhí)行海量的自動化測試用例,就會生成海量的錯誤日志,比如日志文件、錯誤截圖、錯誤的視頻等等。
海量日志數(shù)據(jù)帶來的問題是:導(dǎo)致整個系統(tǒng)的效率變得低下,系統(tǒng)卡頓。會嚴(yán)重影響測試用例設(shè)計者的工作效率。
因此,TestOne采用了“外掛式”的日志模式,即:錯誤日志存放在獨立E/S系統(tǒng)內(nèi),不影響用戶的檢索效率,也不影響日常系統(tǒng)的使用。
E/S日志系統(tǒng),還帶來了額外的兩個特性:日志分布式存儲和智能化檢索。
分布式日志系統(tǒng),能夠把海量的日志信息存放在分布式系統(tǒng)下的不同節(jié)點之下,防止頻繁和大量的訪問帶來的性能瓶頸。此外,對于日志清理工作,也可以獨立執(zhí)行,不影響主系統(tǒng)的功能操作。
智能化檢索,就是E/S系統(tǒng)自帶的一個功能,通過定義日志中出現(xiàn)的特征字符串,來自動化的檢索日志,查找自己需要的信息,而不需要用戶逐個查看。
錯誤自定義
對于經(jīng)常發(fā)生的錯誤,或者發(fā)現(xiàn)了某個錯誤,用戶就可以定義一個“特征字符串”,來“掃描”整個日志,并且根據(jù)掃描結(jié)果來自動匹配。
錯誤自定義,就是指用戶可以通過定義一個“特征字符串”,來智能掃描和分析日志。
錯誤歸類
在用戶定義了“特征字符串”集合,系統(tǒng)就可以根據(jù)掃描結(jié)果,對錯誤進(jìn)行歸類。
對于用戶而言,就可以看到不同錯誤的集合,每個集合匹配了一類的錯誤。
從自動化測試的實踐而言,一類的錯誤,往往都出自于一個原因,比如:網(wǎng)絡(luò)異常斷開、數(shù)據(jù)庫突然無法訪問、文件系統(tǒng)異常、被測試系統(tǒng)(AUT)出錯等,處理的方式都是一樣的。這樣,我們就從逐個查看和處理錯誤的過程,變成了只需要處理一類的錯誤,就可以完成所有的、海量的錯誤處理,從而把工作效率提升了幾十倍。
什么Elasticsearch? (來自百度百科)
Elasticsearch 是一個分布式、高擴(kuò)展、高實時的搜索與數(shù)據(jù)分析引擎。它能很方便的使大量數(shù)據(jù)具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸縮性,能使數(shù)據(jù)在生產(chǎn)環(huán)境變得更有價值。Elasticsearch 的實現(xiàn)原理主要分為以下幾個步驟,首先用戶將數(shù)據(jù)提交到Elasticsearch 數(shù)據(jù)庫中,再通過分詞控制器去將對應(yīng)的語句分詞,將其權(quán)重和分詞結(jié)果一并存入數(shù)據(jù),當(dāng)用戶搜索數(shù)據(jù)時候,再根據(jù)權(quán)重將結(jié)果排名,打分,再將返回結(jié)果呈現(xiàn)給用戶。
Elasticsearch是與名為Logstash的數(shù)據(jù)收集和日志解析引擎以及名為Kibana的分析和可視化平臺一起開發(fā)的。這三個產(chǎn)品被設(shè)計成一個集成解決方案,稱為“Elastic Stack”(以前稱為“ELK stack”)。
Elasticsearch可以用于搜索各種文檔。它提供可擴(kuò)展的搜索,具有接近實時的搜索,并支持多租戶。Elasticsearch是分布式的,這意味著索引可以被分成分片,每個分片可以有0個或多個副本。每個節(jié)點托管一個或多個分片,并充當(dāng)協(xié)調(diào)器將操作委托給正確的分片。再平衡和路由是自動完成的。相關(guān)數(shù)據(jù)通常存儲在同一個索引中,該索引由一個或多個主分片和零個或多個復(fù)制分片組成。一旦創(chuàng)建了索引,就不能更改主分片的數(shù)量。
Elasticsearch使用Lucene,并試圖通過JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文檔與注冊查詢匹配,這對于通知非常有用。另一個特性稱為“網(wǎng)關(guān)”,處理索引的長期持久性;例如,在服務(wù)器崩潰的情況下,可以從網(wǎng)關(guān)恢復(fù)索引。Elasticsearch支持實時GET請求,適合作為NoSQL數(shù)據(jù)存儲,但缺少分布式事務(wù)。
本文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。