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環境のみでサポートされます。

トップに戻る

プロジェクトで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. StoryReporterBuilderwithReportsメソッドを使用して、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回実行しましたが、xALM Octaneで1回のテストで実行されるのを見る代わりに、Xテストを各1回実行

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

トップに戻る

次のステップ