このページを共有

# Gherkinテストの自動化

ALM Octane Gherkinテストから自動テストを作成し、自動プロジェクトに追加してから、CIサーバービルドで実行します。

このトピックの内容:

## Gherkin自動化プロセス

Gherkinテストの自動化には、次のコンポーネントが関係しています。

コンポーネント | 私はここで何をしますか？
--- | ---
ALM Octane | Gherkinテストの作成 IDEにアップロードするテストスクリプトをダウンロードします 自動テスト実行結果を表示し、それらを分析します
使用するIDE | JUnit Runner自動化プロジェクトに含まれている.featureファイルを介してテストの自動化を追加します
CIシステム | ビルド/パイプライン実行の一環としてのテストの実行

開発の段階とあなたのロールに応じて、いくつかの異なるフローがあります。

管理フロー

これは、管理者向けの1回限りのフローです。

開発者のカスタマイズフロー

これは、開発者にとって1回限りのフローです。

単一のテスト自動化フロー

これは、テスト実行ごとに設定できる単一のテスト自動化フローです。

トップに戻る

## 前提条件

- アプリケーション自動化ツールプラグインがCIサーバー上でインストールおよび設定されていることを確認します。詳細については、ALM Octane CIプラグインのCIサーバーへのインストールと設定を参照してください。

- 自動化プロジェクトがCucumberプロジェクトとしてセットアップされていることを確認します。

トップに戻る

## Gherkinテストの作成およびダウンロード

IDEでGherkinテストを実行するには、テストを作成する必要があります。

テストを作成およびダウンロードするには、次の手順を実行します。

1. ALM Octaneで、必要に応じてシナリオを作成し、Gherkinテストに追加します。詳細については、Gherkinテストの作成を参照してください。

2. テストの [スクリプト] タブで、[スクリプトのダウンロード] ボタンをクリックします。

   スクリプトは.featureファイルとしてダウンロードされます。

   注: ALM Octaneは、テストIDを使用して自動実行の結果をマッピングします。テストIDタグを削除しないでください。

3. .featureファイルを自動化プロジェクトに追加します。

トップに戻る

## プロジェクトでoctane-cucumber-jvmを構成します

CIサーバーがALM Octaneに送信するCucumber-basedテスト結果ファイルを生成するには、octane-cucumber-jvmライブラリを自動化プロジェクトに追加します。

octane-cucumber-jvmライブラリの使用はJava環境のみでサポートされます。

Cucumber 4.2-4.8.1の場合:

1. プロジェクトで、この依存関係を次のようにPOMファイルに追加します。

       <dependencies>
           <dependency>
               <groupId>com.hpe.alm.octane</groupId>
               <artifactId>octane-cucumber-jvm</artifactId>
               <version>15.1.0</version>
           </dependency>
       </dependencies>

2. OctaneGherkinFormatterプラグインを各テストクラスのCucumberOptionsに追加し、一意の結果ファイルパスを提供します。

       package feature.manualRunner;

       import cucumber.api.CucumberOptions;
       import org.junit.runner.RunWith;

       @RunWith(Cucumber.class)
       @CucumberOptions(plugin="com.hpe.alm.octane.OctaneGherkinFormatter:gherkin-results/ManualRunnerTest_OctaneGherkinResults.xml",
           features="src/test/resources/feature/manualRunner")
       public class ManualRunnerTest{

       }

Cucumber 1.2の場合:

1. プロジェクトで、この依存関係を次のようにPOMファイルに追加します。

       <dependencies>
           <dependency>
               <groupId>com.hpe.alm.octane</groupId>
               <artifactId>octane-cucumber-jvm</artifactId>
               <version>12.55.7</version>
           </dependency>
       </dependencies>

   使用しているALM Octaneのバージョンに基づき、<version>タグを入力します。

   ALM Octaneのバージョン | <version> タグ
   --- | ---
   ALM Octaneのバージョン12.53.22～12.55.6 | 12.53.22
   ALM Octaneのバージョン12.55.7以降 | 12.55.7

2. JUnit Runnerの.javaファイルで、Octane Cucumberランナークラスをインポートします。

       import com.hpe.alm.octane.OctaneCucumber;

3. JUnit Runnerの.javaファイルで、cucumber.classをOctaneCucumber.classに変更します。

       package feature.manualRunner;

       import com.hpe.alm.octane.OctaneCucumber;
       import cucumber.api.CucumberOptions;
       import org.junit.runner.RunWith;

       @RunWith(OctaneCucumber.class)
       @CucumberOptions(features="src/test/resources/feature/manualRunner")
       public class ManualRunnerTest{

       }

トップに戻る

## プロジェクトでoctane-jbehave-gherkin-reporterを設定する

JBehave GherkinレポーターはJBehaveが戻っALM Octaneにテストアップロードを可能にします。

以下に説明するように、JBehaveテストでレポーターを使用します。テストを実行すると、レポーターは結果を含むファイルを出力します。

CIのためのALM Octaneプラグインは、これらのファイルを読み込み、ALMOctaneに結果をアップロードします (ALM Octane CIプラグインのCIサーバーへのインストールと設定参照)。その後、ALM OctaneであなたのGherkinやBDDシナリオテストで結果を見ることができます。

octane-jbehave-gherkin-reporterライブラリは、Java環境での使用のみがサポートされています。

ALM Octaneへのレポートを有効にするには:

1. プロジェクトで、この依存関係を次のようにPOMファイルに追加します。

       <dependencies>
           <dependency>
                <groupId>com.microfocus.adm.almoctane.jbehave</groupId>
                <artifactId>octane-jbehave-gherkin-reporter</artifactId>
                <version>1.0.0</version>
           </dependency>
       </dependencies>

2. StoryReporterBuilderのwithReportsメソッドを使用して、OctaneGherkinReporterをレポーターとして実行中の構成に追加します。例:

       public class OctaneStoriesRunner extends JUnitStories {
           private final Class<? extends Embeddable> embeddableClass = this.getClass();

           @Override
           public Configuration configuration() {
               String resultDir = "gherkin-results";
               return new MostUsefulConfiguration()
                   .useStoryParser(new GherkinStoryParser())
                   .useStoryLoader(new LoadFromClasspath(embeddableClass))
                   .useStoryReporterBuilder(
                       new StoryReporterBuilder()
                           .withReporters(new OctaneGherkinReporter(embeddableClass.getClassLoader(), resultDir))
                   );
           }
       }

   OctaneGherkinReporterコンストラクターは、次の2つの入力パラメーターを受け入れます。

   - classLoader - エンベッダークラスローダー。

   - resultDir - (オプション) レポートを書き込むためのパス。パスが指定されていない場合、OctaneGherkinReporterはレポートをtarget/jbehave/octaneに書き込みます。

トップに戻る

## CIでのビルドジョブの作成

ビルドジョブ設定で、テストを実行するビルドステップを追加します。

CIで必要な場合は、ビルド後の手順を追加して、テスト結果をジョブフォルダーにコピーします。例えば、Jenkinsに、アクション部からALM Octane Cucumber test reporterステップを追加します。

注:

- ALM Octane Cucumber test reporterステップを追加した場合、CIサーバーはGherkinテスト結果のみをOctaneに送信します。その他の自動テストからのテスト結果はビルドの一部として送信されません。

- CIサーバーは、大きなCucumberテスト結果を注入するのに十分なメモリを使用して設定する必要があります。たとえば、Jenkinsの場合、推奨される最小メモリは2GBです。

ポストビルドアクションは、テスト結果のXMLファイルを、ポストビルドアクションで指定するパスからジョブビルドフォルダーにコピーするように、CIに指示します。このビルドフォルダーから、結果がALM Octaneにコピーされます。

CIサーバーでのテスト実行中に、OctaneCucumberランナーは、gherkin_resultsという専用フォルダーに<test name>_OctaneGherkinResults.xmlという名前の実行結果レポートを生成します。

注: バージョン12.53.19以前のoctane-cucumber-jvmライブラリを使用している場合、結果ファイルの名前はOctaneGherkinResults.xmlです。

ポストビルドCucumberテストレポートステップが失敗した場合、CIサーバーではビルド全体が不合格となります。

トップに戻る

## ビルドジョブのパイプラインへの追加

テストを実行するビルドプロジェクトまたはビルドジョブがALM Octaneパイプラインに含まれていることを確認します。パイプラインを実行すると、CIはテスト結果を生成します。アプリケーション自動化ツールプラグインは結果ファイルを読み取り、詳細をALM Octaneに送信します。

パイプラインの作成と操作の詳細については、パイプラインの作成と設定を参照してください。

トップに戻る

## パイプラインの実行

結果をALM Octaneに送信するには、対応するパイプラインを実行する必要があります。

パイプラインを実行するには、次の手順を実行します。

1. ALM OctaneまたはCIサーバーでパイプラインを実行します。

   ALM Octaneは、テスト結果を元のGherkinテストにリンクします。ALM Octaneは.featureファイルおよびALM Octane内のスクリプトの先頭にあるテストIDタグを使用します。ALM Octaneは、以下の基準を使用してテストを割り当てます。

   - テストがすでにALM Octaneに存在し、テストIDタグが.featureファイルに含まれている場合、ALM OctaneはテストIDタグによってマッピングを行います。

   - テストIDが.featureファイルに含まれていない場合、ALM Octaneは.featureスクリプトのパスによってマッピングを行います。

   - テストがALM Octaneに存在しない場合、システムはALM Octaneに新規テストを作成し、そこに結果をマッピングします。

2. ALM Octaneで結果を分析します。

トップに戻る

## トラブルシューティング

本項には、自動化されたGherkinテストの実行に関連する問題のトラブルシューティングの提案が含まれています。

自動テストを実行しましたが、ALM Octaneで確認できません。

1. コードを確認してください。正しい構文を使用していることを確認してください。Cucumberは必ずしも構文エラーを示しているわけではありません。ローカルでテストを実行します。

2. ローカルでテストを実行できた場合は、XMLが生成されたことを確認してください。

   POMファイルが正しく定義され、octane-cucumber-jvmライブラリが正しいバージョンとともに含まれていることを確認し、OctaneCucumberがテストクラスのランナーとして定義されていることを確認します。詳細については、プロジェクトでoctane-cucumber-jvmを構成するを参照してください。POMファイルとテストクラスの両方が適切に更新され、XMLが生成されない場合は、ALM Octaneサポート担当者に連絡してください。

3. テストがローカルで実行される場合は、CIツールでテストが実行されたことを確認してください。アプリケーション自動化ツールプラグインがCIサーバー上でインストールおよび設定されていることを確認します。詳細については、ALM Octane CIプラグインのCIサーバーへのインストールと設定を参照してください。

4. ジョブのコンソールをチェックして、ビルド後のアクションでXMLが検出されたことを確認します。ジョブコンソールログで確認できます。

       Micro Focus Octane Cucumber test reporter: Got result file content

       Micro Focus Octane Cucumber test reporter: Result file copied to …

5. Check the plugin logs. They should display:

       Successfully pushed test results of build [<build name>#<build number>]

6. サーバーログでエラーを確認してください。XSD検証エラーは一般的です。

テストをx回実行しましたが、xがALM Octaneで1回のテストで実行されるのを見る代わりに、Xテストを各1回実行

.featureファイルのテストスクリプトに、ALM Octaneによって生成されたテストID(TID) が含まれていることを確認します。自動化の結果をマッピングするには、テストIDが必要です。TIDが欠落している場合は、テストスクリプトをダウンロードして、再度実装してください。

トップに戻る

次のステップ

- DevOps CIサーバー統合のフロー
- 自動テスト実行結果の分析

https://admhelp.microfocus.com ALM Octane 8942
検索結果を改善するためのヒント... ALM Octaneヘルプセンター ALM Octaneヘルプ 15.1.90 すべて ローカルヘルプセンターを表示 オンラインヘルプセンターを表示 戻る ブラウザーの履歴内を戻る 進む ブラウザーの履歴内を進む 検索のハイライトを削除する 次のトピック 次のトピックに進む 前のトピック 前のトピックに戻る 現在のトピックを印刷 バージョン: