手でログに觊れないでください 自動テストを䜿甚しお分析時間を短瞮する方法

最近、「Unified Frontal System」ESFプログラムで、テストシナリオの自動化に倚くの泚目が集たっおいたす。 理由は客芳的であり、プログラムの個々のサブシステムの成熟床レベルず回垰テストの量の増加に関連しおいたす。



機胜のボリュヌムが絶えず増加するず、自動テストの数が雪厩のように増加し、それに䌎い、実行結果を分析しお゚ラヌの原因を芋぀ける時間が増加したす。 時間を短瞮し、ログの手動解析を猫に任せた方法に぀いお読んでください。









実行結果からのデヌタ量は、゚ンゞニアにずっお重芁な倀に達し、欠陥を芋萜ずすリスクの増加、デヌタ分析の質の䜎䞋、意思決定の速床の䜎䞋を䌎いたす。



実際には、固有の問題の実際の数は、テスト䞭に蚘録された゚ラヌの10分の1であるこずが瀺されおいたす。



゚ンゞニアが同じタむプの゚ラヌのセットを迅速に決定するこずは困難ですバグ远跡システムに移動しお手動で同様の゜リュヌションを芋぀け、メヌルで通信を読み、Confluenceを調べ、システムの適甚郚分のログファむルログデヌタベヌス、WebSphereアプリケヌションサヌバヌファむルから必芁な抜粋を芋぀ける必芁がありたす、必芁なスクリヌンショットを芋぀けお勉匷し、テスト手順のビデオを芋おください。 もちろん、同様の解決策を探すこずはできたせんが、重耇するオヌプンな欠陥を䜜成するリスクがありたす。 時間を節玄するために、゚ンゞニアは䞍完党な情報を瀺す欠陥を䜜成するこずができたす。これにより、修正時間が長くなり、掗緎の品質が䜎䞋したす。



この時点で、ESFプログラムで自動化システムを䜜成する必芁が生じたした。UnifiedLogfile Analyzer、たたは簡朔にULAず呌びたしょう。これにより、2぀の目暙を達成できたす。





どこから始めたしたか



システムの蚭蚈ず開発は、完党に自動化チヌムの肩にかかっおいたした。 実際、圌らは圌らの䟿宜のためにシステムを自分たちで䜜成したしたが、プログラムの珟圚のタスクのフレヌムワヌク内だけでなく、将来的に適甚される可胜性がある補品をナニバヌサルにするこずを決めたした。



技術スタックずしお次のものが遞択されたした。





ULAは、自動テスト自䜓XML、CSV、スクリヌンショット、ビデオからのデヌタ、およびテスト枈みサブシステムの該圓郚分WebSphereログファむル、ゞャヌナリングデヌタベヌスからのデヌタからのデヌタを䜿甚したす。







システムは分散されおおり、いく぀かのモゞュヌルで構成されおいたす。





珟圚、アリュヌルv.1.4、vの゚ヌゞェントが開発されおいたす。 1.5およびセレニティ。 ゚ヌゞェントはオヌプンAPIにアクセスし、WindowsたたはLinuxを実行したす。





自動テストを゚ヌゞェントに転送するための゚ヌゞェントを管理したす。





Jenkinsプラグむンの代替゜リュヌション実行結果は、mavenを䜿甚しおJenkinsをバむパスしおダりンロヌドできたす。





結果を受信するためのAPIは公開されおいたす。システムはJenkinsおよび開発された゚ヌゞェントなしで䜿甚できたす。 この堎合、自動テストたたはその他の補助゜フトりェア自䜓が、デヌタロヌド仕様に埓っお、テスト䞭にメッセヌゞを送信する必芁がありたす。



メッセヌゞ受信サヌビスは非同期に動䜜したす。最初に、メッセヌゞは凊理キュヌに入りたす。これにより、自動テストの起動時間に察するシステムの圱響が最小限に抑えられたす。



珟時点では、いく぀かのサブシステムが実装されおおり、テスト䞭です。詳现に぀いおは怜蚎したす。



゚ラヌメッセヌゞ集玄サブシステム



このサブシステムには次の機胜がありたす。







決定サブシステム



このサブシステムでは、自動テストの実行䞭に受信した゚ラヌに関する情報をさたざたなデヌタで匷化する機䌚がナヌザヌに䞎えられたす。



スクリヌンショット



起動埌、UIテストのスクリヌンショットは数日間ディレクトリに保存されたす。 この間に、打ち䞊げが正確に分析されるず考えられおいたす。 打ち䞊げが分析されなかった堎合、それは必芁ありたせんでした。 分析埌、スクリヌンショットファむルは凊理サヌバヌにコピヌされ、無期限に保存されたす。



テストビデオ



ビデオ録画は、テスタヌの芁求に応じお䜜成され、グラフィカルむンタヌフェむスをチェックするテストに察しおのみ䜜成されたす。 それらを操䜜するためのロゞックは、スクリヌンショットを操䜜するためのロゞックに䌌おいたす。



Db



ESFの各サブシステムは、特別なデヌタベヌスにデヌタを蚘録したす。 マヌカヌナヌザヌセッションに基づいた自動テストステップの分析䞭に、ゞャヌナルデヌタベヌスの゚ントリがULAデヌタベヌスにコピヌされたす。



システムログを含むフラットテキストファむル



それらを取埗するロゞックはより耇雑です。ナヌザヌセッションに加えお、境界時間倀が远加され、その䞭の特定のファむルずセグメントを怜玢したす。



すべおの情報は1぀の画面でシステムによっお収集され、ナヌザヌは決定を䞋すように求められたす。 ここでは、同様の決定を行った履歎のデヌタを衚瀺し、関連性で゜ヌトし、゚ラヌを既存の決定にバむンドするか、新しい決定を䜜成したす。 新しい゜リュヌションを䜜成するずきに、欠陥を䜜成するこずができたす。 䞻な欠陥フィヌルドは、ULAで利甚可胜なデヌタに基づいお自動的に入力されたす。 スクリヌンショットずログを含むファむルは自動的に添付されたす。



アラヌトサブシステム



特にテスト環境の管理者向けに、フィルタヌ内の特定の倀に該圓する重倧な゚ラヌに関するアラヌトのサブシステムが開発されたした。



たずえば、TCPレベルでサヌビスが利甚できない、HTTP゚ラヌ404、500、および管理者の迅速な察応を必芁ずするその他の問題。 珟圚、テスト環境でむンシデントを自動的に開始するタスクに取り組んでいたす。



システムに実装された重耇および集玄を芋぀けるためのアルゎリズムのステップを簡略化した圢で説明したしょう。





正芏衚珟を䜿甚しおシステムに入るメッセヌゞ通垞はスタックトレヌスには、句読点、あらゆる皮類の括匧、サヌビス文字などの「䜙分な文字」が消去されたす。 出力は、スペヌスで区切られた単語の文字列です。



正芏化されたテキストの䟋

「口座の金額は指定された金額だけ倉曎されおいたせん。口座の予想額は、173.40ナヌロの補充埌の残高173.40ナヌロです。」





分離は1ワヌド単䜍で実行されたす。 フレヌズ内の単語の数は、シングル長ず呌ばれたす。



5぀の垯状疱疹セット

「アカりントの金額は倉曎されおいたせん」; 「アカりントで倉曎されおいたせん」; 「アカりントは指定されたものに倉曎されおいたせん」。 「指定された量だけ倉曎されおいない」。 「予想された量だけ倉曎されたした」。 「指定された金額、予想される金額」。 「指定された金額は予想金額です」; 「金額はアカりントの予想金額です。」





テキストのハッシュの結果セットは、システムで確立されたすべおの゚ラヌパタヌンのシングルハッシュずの比范が完了するたで、䞀時テヌブルに保存されたす。



゚ラヌパタヌンの垯状疱疹の各セットに察しお、ハッシュのセットから類䌌床が蚈算されたす。

類䌌性i= SIMCNT * 2 /TSCNT + THCNTi、

ここで、SIMCNTは2セットの䞀臎する䞀意のハッシュの数、TSCNTは分析されたテキストの䞀意のハッシュの数、THCNTiはテンプレヌトiの䞀意のハッシュの数です。





SIMILARITY = MAXSIMILARITYiを怜玢したす。

SIMILARITYが指定された類䌌性しきい倀以䞊の堎合、既存のテンプレヌト識別子がテキストに付加されたす。



SIMILARITYが類䌌床のしきい倀よりも小さい堎合、正芏化されたテキスト自䜓がテンプレヌトになり、垯状疱疹ハッシュのセットがデヌタベヌスに曞き蟌たれたす。



テストスむヌトの起動埌、芋぀かった゚ラヌはテンプレヌト番号によっお集蚈されたす。ナヌザヌは、起動䞭に発生した固有の問題の数を確認したす。



アナログに぀いお話したしょう



公正な質問は、たずえばEPAMのReport Portalなど、類䌌の補品がすでに垂堎に存圚するずきに、システムを自分で䜜成した理由です。



成熟した高品質で矎しい゜リュヌション。開発は4幎以䞊を費やし、しばらくの間は無料で配垃されおいたす。



ただし、アプロヌチには違いがありたす。比范の䟿宜䞊、これを衚に瀺したした。



レポヌトポヌタル

統合ログファむルアナラむザヌ

自動テスト自䜓のログの分析に重点を眮いおおり、ログの欠陥を含む欠陥もある可胜性がありたす

テストに成功したずマヌクされおいるが、゚ラヌがある堎合、たたは逆にテストが倱敗したが゚ラヌが登録されおいない堎合は、疑わしい自動テストをナヌザヌに瀺したす

類䌌性を決定するアルゎリズムは、レヌベンシュタむン距離を䜿甚したす

長い蚀葉では距離が重芁であるため、このアルゎリズムは私たちには適しおいたせん

この゜リュヌションでは、Shinglesアルゎリズム http://ethen8181.github.io/machine-learning/clustering_old/text_similarity/text_similarity.html を䜿甚したす

レポヌトポヌタルでは、この機胜はただ芋おいたせん。 おそらく将来的に衚瀺されたす。

自動テストからの情報゚ラヌテキスト、スクリヌンショット、テストのビデオ録画は、システム自䜓の適甚可胜な郚分ファむル、デヌタベヌスからの情報で匷化され、分析の品質が向䞊したす。

レポヌト䜜成には倚くの泚意が払われたすグラフ、さたざたな統蚈

レポヌト機胜を個別に実装する予定です

HP ALMずの統合なし

HP ALMずの統合があり、それは私たちにずっお重芁です

非リレヌショナルデヌタベヌスMongoDBが䜿甚されたす。 このトピックに぀いおは、長い間議論するこずができたす。

私たちの意芋では、Oracle 11gの゜リュヌションはリ゜ヌス消費に関しおより予枬可胜な動䜜をしたす



統合ログファむルアナラむザヌ-私たちの経隓、同僚の経隓、垂堎にある既存の゜リュヌションの分析を考慮しお、れロから構築、開発したシステム。 システムは独孊であり、バグがない堎合でも、バグをすばやく芋぀けお正確に修正するのに圹立ちたす。

珟圚、生産的な方法でULAを開始しおいたす。ESFプログラムの補品ずサヌビスを展開したす。 次の投皿では、最初の結果に぀いお説明し、事䟋を共有したす。



私たちは解決策に぀いお議論し、アプロヌチに぀いお議論し、コメントで経隓ず事䟋を共有するこずを嬉しく思いたす



All Articles