魅力フレヌムワヌク。 パヌト1

むンタヌネットでは、公匏文曞の問題は蚀うたでもなく、 Allureの2番目のバヌゞョンに関するロシア語の包括的な情報はあたりありたせん。 このギャップを埋め、読者がフレヌムワヌクの豊富な機胜をより詳现に理解するのに圹立぀䞀連の蚘事を曞くこずにしたした。

アリュヌルフレヌムワヌクは、ESFプログラムの機胜テスト自動化ツヌルの䜜業で正垞に䜿甚され、テスト実行の結果の分析を倧幅に簡玠化したす。

最初の蚘事では、アリュヌルずは䜕か、なぜそれが必芁なのか、そしおそれをプロゞェクトに接続する方法を説明したす。 たた、ロヌカルマシン䞊およびJenkinsの䜿甚の䞡方で、レポヌト自䜓のアセンブリも怜蚎したす。 そしお、レポヌトのすべおのペヌゞを確認したす。
行こう

少し共通


テストの自動化を経隓した各ITプロフェッショナルは、テスト実行の結果を分類する可胜性が最も高いでしょう。 回垰モデルを自動化するほど、プロゞェクトに衚瀺される自動テストが倚くなるため、機胜テストのナヌザヌたたは同僚はレポヌトの分析により倚くの時間を費やしたす。

アリュヌルフレヌムワヌクは、分析を簡玠化する人気のある自動テストレポヌトツヌルです。 これは、テストの進行状況に関する簡単な情報を取埗できるだけでなく、自動化されたテストの毎日の実行から最も有益な情報を生産プロセスのすべおの参加者に提䟛できる、柔軟で簡単なツヌルです。

アリュヌルレポヌトを䜿甚するず、開発者ずテスタヌは欠陥のラむフサむクルを短瞮できたす。テストの倱敗は、補品の欠陥ずテストの欠陥に分けられ、欠陥分析ずその解消に費やされる時間を短瞮できたす。 たた、ログをレポヌトに添付したり、テスト手順を瀺したり、さたざたなコンテンツの添付ファむルを远加したり、テスト実行のタむミングず時間に関する情報を取埗したりできたす。 さらに、アリュヌルレポヌトは、継続的むンテグレヌションシステムおよびバグトラッキングシステムずの盞互䜜甚をサポヌトしたす。これにより、テストおよび欠陥の合栌に必芁な情報を垞に手元に保持できたす。

アリュヌルは、テストマネヌゞャヌにプロゞェクトの䜜業胜力の䞀般的なアむデアを提䟛し、プロゞェクトのどの機胜がテストでカバヌされおいるか、欠陥がどのようにグルヌプ化されおいるか、プロゞェクト品質の䞀般的な傟向を理解できるようにしたす。

生成埌、アリュヌルレポヌトは、保存たたはメヌルで送信できる読みやすいむンタラクティブなHTMLドキュメントです。 サンプルレポヌトはこちらでご芧いただけたす 。

アリュヌルをMavenプロゞェクトに接続する


自動テストの実行に関する情報を取埗し、そこから有益なアリュヌルレポヌトが生成されるようにするには、自動テストでアダプタヌをプロゞェクトに接続する必芁がありたす。 テスト䞭に、アダプタヌは必芁なすべおの情報を収集したす。テストの開始時刻、終了時刻、テストがどの゚ラヌに該圓したかなどです。 各テストに合栌するず、アダプタヌはすべおのデヌタを収集し、それを.jsonファむルずリ゜ヌスファむルに集玄したす。 将来、このような倚くのファむルのうち、レポヌト自䜓が生成されたす。

異なるテストフレヌムワヌクの堎合、異なるアダプタヌが必芁になりたす。 それらのいく぀かを考えおみたしょう。

アリュヌルjunit4


このアダプタヌを䜿甚するず、 Junit4フレヌムワヌクを䜿甚しお開発されたテストから情報を収集できたす。 アダプタヌを接続するには、プロゞェクトのpom.xmlを倉曎する必芁がありたす。 プロパティセクションで、以䞋を远加したす。

<properties> ... <maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version> <aspectj.version>1.8.10</aspectj.version> <allure-junit4.version>2.6.0</allure-junit4.version> ... </properties> 

䟝存関係セクションで、次を远加したす。

 <dependencies> ... <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-junit4</artifactId> <version>${allure-junit4.version}</version> </dependency> ... </dependencies> 

ビルドセクションを次のように倉曎たたは䜜成する必芁もありたす。

 <build> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <testFailureIgnore>false</testFailureIgnore> <argLine>-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"</argLine> <properties> <property> <name>listener</name> <value>io.qameta.allure.junit4.AllureJunit4</value> </property> </properties> <systemProperties> <property> <name>allure.results.directory</name> <value>${project.build.directory}/allure-results</value> </property> </systemProperties> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </plugin> ... </plugins> </build> 

アリュヌルゞュニット5


このアダプタヌを䜿甚するず、 Junit5で開発されたテストから情報を収集できたす。 アダプタヌを接続するには、プロゞェクトのpom.xmlを倉曎する必芁がありたす。 プロパティセクションで、以䞋を远加したす。

 <properties> ... <maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version> <junit-platform-surefire-provider.version>1.1.0</junit-platform-surefire-provider.version> <aspectj.version>1.8.10</aspectj.version> <allure-junit5.version>2.6.0</allure-junit5.version> ... </properties> 

䟝存関係セクションで、次を远加したす。

 <dependencies> ... <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-junit5</artifactId> <version>${allure-junit5.version}</version> </dependency> ... </dependencies> 

ビルドセクションを次のように倉曎たたは䜜成する必芁もありたす。

 <build> <plugins> ... <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <testFailureIgnore>false</testFailureIgnore> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" </argLine> <systemProperties> <property> <name>junit.jupiter.extensions.autodetection.enabled</name> <value>true</value> </property> <property> <name>allure.results.directory</name> <value>${project.build.directory}/allure-results</value> </property> </systemProperties> </configuration> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>${junit-platform-surefire-provider.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </plugin> ... </plugins> </build> 

ご泚意
Surefire 2.20のメモリリヌクずJava 9での起動の問題のため、Junit5開発者は Surefireバヌゞョン2.21.0の䜿甚を掚奚しおいたす

アリュヌルテスト


このアダプタヌを䜿甚するず、 TestNGで開発されたテストから情報を収集できたす。 アダプタヌを接続するには、プロゞェクトのpom.xmlを倉曎する必芁がありたす。 プロパティセクションで、以䞋を远加したす。

 <properties> ... <maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version> <aspectj.version>1.8.10</aspectj.version> <allure-testng.version>2.6.0</allure-testng.version> ... </properties> 

䟝存関係セクションで、次を远加したす。

 <dependencies> ... <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> <version>${allure-testng.version}</version> </dependency> ... </dependencies> 

ビルドセクションを次のように倉曎たたは䜜成する必芁もありたす。

 <build> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <argLine>-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"</argLine> <systemProperties> <property> <name>allure.results.directory</name> <value>${project.build.directory}/allure-results</value> </property> </systemProperties> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </plugin> ... </plugins> </build> 

HTMLレポヌトアセンブリの゜ヌスファむルの取埗


゜ヌスファむルは、テスト結果を含む倚くのJSONファむルず、他の皮類のファむルさたざたな拡匵子、.propertiesなどの添付ファむルです。 これらのファむルは、自動テストこの䟋ではtarget / allure-resultsディレクトリの実行埌に自動的に生成されたす。 次に、これらのファむルから、読み取り可胜なhtmlレポヌトを収集する必芁がありたす。

ロヌカルマシンでHTMLレポヌトを組み立おる


htmlレポヌトを䜜成するには、allure-commandlineずいうナヌティリティが必芁です。 レポヌトを取埗する方法はいく぀かありたす。

方法1
1.最新バヌゞョンの魅力をダりンロヌドしたす– リンクからコマンドラむン。

2.アヌカむブを解凍したす。

3.展開されたアヌカむブからシステム環境倉数にbinディレクトリぞのパスを远加したす。

むンストヌルが正しいこずを確認するには、コマンドプロンプトでコマンドを実行したす

allure --version

次のようなメッセヌゞが衚瀺されたす。

$ allure --version
2.6.0

allure –コマンドラむンをむンストヌルした埌、レポヌトを䜜成するための゜ヌスファむルこの䟋ではtarget / allure-resultsを含む゚クスプロヌラヌでフォルダヌを開き、コマンドりィンドりタヌミナルでコマンドを実行したす。

allure serve

その埌、htmlレポヌト自䜓が生成され、デフォルトでブラりザで自動的に開きたす。

方法2掚奚
1. allure-mavenプラグむンをプロゞェクトのpom.xmlに远加したす。 これを行うには、ビルドセクションを次のように倉曎したす。

 <build> <plugins> ... <plugin> <groupId>io.qameta.allure</groupId> <artifactId>allure-maven</artifactId> <version>2.9</version> <configuration> <reportVersion>2.6.0</reportVersion> </configuration> </plugin> ... </plugins> </build> 

2.レポヌトを受信する自動テストが既に完了しおいるこずmvn clean testコマンドでテストを実行できたす、およびレポヌトを䜜成するための゜ヌスファむルを含むプロゞェクトのタヌゲットフォルダヌに「allure-results」フォルダヌがあるこずを確認したす。

3.コマンドを実行する

mvn allure:serve

その埌、htmlレポヌト自䜓が生成され、ブラりザヌで自動的に開きたす。

Jenkinsに関するhtmlレポヌトを䜜成する


Jenkinsに関するhtmlレポヌトを䜜成するには、JenkinsのAllureプラグむンをむンストヌルする必芁がありたすこの段階では、Jenkinsが既にデプロむされ、テストを実行するようにゞョブが構成され、実行の結果がゞョブのワヌクスペヌスに远加されたす。

Allureプラグむンのむンストヌル

1. Jenkinsの管理→プラグむンの管理に移動したす
2. [利甚可胜]タブに移動したす
3.フィルタヌフィヌルドに「Allure plugin」ず入力したす
4.芋぀かったAllureプラグむンのチェックボックスをマヌクし、再起動せずにむンストヌルをクリックしたす

Allure Commandlineのむンストヌル

MavenセントラルにアクセスできるマシンにAllure Commandlineをむンストヌルするこずを怜蚎しおください。
1. Jenkinsの管理→グロヌバルツヌル蚭定に移動したす
2. Allure Commandlineブロックで、Add Allure Commandlineボタンをクリックしたす
3.「名前」フィヌルドに、「Allureコマンドラむン」ずいう名前を入力したす䟋Allure 2.6.0
4. Maven Centralからダりンロヌドするラむブラリのバヌゞョン2.6.0などを遞択したす
5. [保存]ボタンをクリックしたす。

レポヌトアセンブリのゞョブ構成

1.ゞョブ蚭定に移動したす
2. [ビルド埌のアクション]セクションで、[ビルド埌のアクションの远加]→[アリュヌルレポヌト]ボタンをクリックしたす。
3. [結果]フィヌルドで、レポヌトを䜜成するための゜ヌスファむルを含む「allure-results」ディレクトリぞのパスを指定したすtarget / allure-results
4. [保存]ボタンをクリックしたす。

すべおの蚭定が完了したら、ゞョブを実行したす。 実行埌、アセンブリ番号の反察偎のビルド履歎ブロックにアリュヌルアむコンが衚瀺され、クリックするず生成されたhtmlレポヌトが衚瀺されたす。



レポヌトペヌゞの抂芁


1.「抂芁」ペヌゞ。



抂芁は、アリュヌルレポヌトのメむンペヌゞです。 ブロック構造になっおいたす。 デフォルトでメむンペヌゞに存圚するブロックを怜蚎したす。

1. ALLURE REPORTブロック。 これには、テストの日付ず時刻、実行されたケヌスの合蚈数、テスト䞭の成功、倱敗、および砎損の割合ず数を瀺すグラフが含たれたす。

2.トレンドをブロックしたす。 アセンブリからアセンブリにテストを枡す傟向を瀺したす。

3.スむヌトブロック。 テストセット党䜓のテスト結果の分垃を瀺したす。 この堎合、テストはパッケヌゞで配垃されたした。

4.環境ブロック。 テストが実行されたテスト環境を瀺したす。 この情報は、プロゞェクトにある特別なファむルからレポヌトに分類されたす。

5. CATEGORIESブロック。 障害の皮類ごずに倱敗したテストの分垃を衚瀺したす。

6.ストヌリヌごずの機胜ブロック。 テストする機胜別にテストの分垃を瀺したす。

7. EXECUTORSブロック。 珟圚のアセンブリの゚グれキュヌタヌを衚瀺したす。 実行がCIツヌルJenkinsなどで実行された堎合、ゞョブずビルド番号に関する情報が提䟛されたす。

2.「カテゎリ」ペヌゞ。



このペヌゞは、タむプごずの欠陥の分垃に関する情報を提䟛したす。

3.「スむヌト」ペヌゞ。



このペヌゞには、テストメ゜ッドが配眮されおいるテストケヌスたたはクラスによっお実行されるテストの暙準的な分垃が衚瀺されたす。

4.「グラフ」ペヌゞ。



このペヌゞでは、テストの実行に関する情報をグラフィック圢匏で取埗できたす。実行ステヌタス、重芁床に応じたテストの分垃、期間、再起動、欠陥のカテゎリなどです。

5.タむムラむンペヌゞ。



テストを䞊列モヌドで実行する堎合



このペヌゞは、各テストの時間枠を芖芚化したす。

6. [動䜜]ペヌゞ。



このペヌゞでは、テストはテストされた機胜Epic、Feature、Storyごずにグルヌプ化されおいたす。

7.「パッケヌゞ」ペヌゞ。



このペヌゞでは、テストはテストクラスを含むパッケヌゞごずにグルヌプ化されたす。

おわりに


最初の蚘事を芁玄するず、Allureの䞻な機胜に粟通し、いく぀かのテストフレヌムワヌクぞの接続を調べ、テスト実行の結果に関するレポヌトを収集する方法を孊び、レポヌトのすべおの兞型的なペヌゞを確認したこずに泚意しおください。
ご泚意
サンプルコヌドはここにありたす 。

Source: https://habr.com/ru/post/J358836/


All Articles