魅力フレームワーク。 パート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の主な機能に精通し、いくつかのテストフレームワークへの接続を調べ、テスト実行の結果に関するレポートを収集する方法を学び、レポートのすべての典型的なページを確認したことに注意してください。

ご注意

サンプルコードはここにあります




All Articles