簡單討論ELK在測試中的使用場景

什麼是ELK

在高複雜度的系統中,對於定位線上問題,日誌非常重要。ELK(ElasticSearch+Logstash+Kibana),可以使用說是目前最流行的日誌平臺構建方案,之所以深受開發者喜愛,主要是因爲它解決了大規模系統的日誌收集的各種痛點。

ELK(ElasticSearch+Logstash+Kibana),主要包含三個組件:

  • ElasticSearch
  • Logstash
  • Kibana

ElasticSearch

ElasticSearch是一個開源的分佈式的搜索引擎,它主要基於Apache Lucene。在整個ELK Stack中,ElasticSearch是最核心的組件,它存儲數據,並且提供了許多靈活而實用的Rest API,所以,上層應用可以根據需要去查詢數據,使用數據,分析數據。在日誌平臺中,所有的日誌數據都存儲到ElasticSearch中,藉助其強大的搜索能力,可以很靈活的查詢日誌。

Logstash

Logstash主要用於收集數據,並將數據保存到ElasticSearch中。

Logstash有豐富插件,並且易於擴展,所以,可以使用Logstash收集到數據後,可以做很多處理,最終再將數據輸出到ElasticSearch中。在日誌平臺中,它主要複雜採集應用的日誌。

Kibana

Kibana主要負責讀取ElasticSearch中的數據,並進行可視化展示。並且,它還自帶Tool,可以方便調用ElasticSearch的Rest API。在日誌平臺中,我們通過Kibana查看日誌。

使用ELK存儲測試報告

測試報告是自動化測試中非常重要的一環,測試結果的清晰展示以及歸檔是大家需要日常處理的問題。

既有的經驗裏,我們可以通過定製一些測試模版輸出一些特定格式的測試報告,比如html格式,然後保存到測試報告平臺或者直接郵件發送。

上面的做法其實沒什麼不好,不過可能需要一些開發工作量。另外歸檔和搜索之類的功能需要一定的二次開發能力,對於測試同學來說有一定的挑戰。

如果用例運行的非常頻繁,那麼高頻次的出報告持久化以及多維度的搜索也是一件非常麻煩的事情。

我們可以用ELK來簡單粗暴的解決上面的問題。將每次的測試結果落地到日誌文件裏,然後使用Logstash處理並持久化到ES,最終使用Kibana來搜索,全程工作量很小,而且複雜的搜索功能開箱即用,成本低廉穩定性好,大家有興趣可以不妨嘗試一下。

使用ES管理測試用例

如果測試用例比較多的話,我們可能需要從很多的維度去搜索測試用例。假設我們開發測試用例管理系統的話,實現這些進階搜索其實是比較大的工作量。

我們可以將ES當作是存儲引擎,把測試用例保存在ES裏,ES有非常有好的RESTFUL API,使用這些API去檢索數據,然後對結果進行一些可視化,就可以實現一個功能較爲完備的用例管理系統了。

如果不想二次開發就得到一個窮人版功能複雜的用例管理系統的話,可以將用例持久化成日誌,然後用ELK工具鏈處理,最後使用kibana來查看用例,這也未嘗不可。

 

總之用ELK來做日誌的處理和搜索是非常方便的,我們在測試過程中如果遇到有大量數據需要靈活搜索的場景都可以嘗試一下ELK。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章