ページを選択

JMeter との統合

Apache JMeter™ アプリケーションは、機能的な動作の負荷テストとパフォーマンスの測定のために設計された、オープンソースの 100% 純粋な Java ツールです。元々は Web アプリケーションのテスト用に開発された JMeter ですが、その後さまざまなテスト機能をサポートするようになりました。

Web アプリケーションを含め、静的リソースおよび動的リソースの両方のパフォーマンス評価に使用でき、サーバー (またはサーバーのグループ)、ネットワーク、オブジェクトへの高い負荷をシミュレートして、その回復力を評価し、さまざまな負荷条件下での全体的なパフォーマンスを分析します。

このチュートリアルでは、TestRail CLI を使用して、JMeter のテスト結果を TestRail に統合する方法を説明します。この統合により、自動テスト結果を一元管理し、TestRail の分析およびレポート機能を活用できます。

概要

このチュートリアルでは、サンプル プロジェクトを使用して、TestRail CLI と連携する JMeter のパフォーマンス テスト プロジェクトをセットアップし、生成されたテスト結果をアップロードする手順を案内します。

このチュートリアルを終えると、以下のことができるようになります。

    • JMeter のサンプル プロジェクトに対してパフォーマンス テストを作成する
    • TestRail CLI をインストールする
    • TestRail インスタンスを設定する
    • CLI を使用してパフォーマンス テストを実行し、結果をTestRail にアップロードする。
    • TestRail でテスト ケースとテスト結果を確認する

前提条件

サンプル プロジェクトを作成して実行するには、Apache JMeter、JUnit Reporter Plugin、Python (TestRail CLI のインストールと実行に必要) をインストールする必要があります。これらのツールを使用して、テスト結果を生成し、TestRail にインポートします。

前提条件 説明
Apache JMeter™ OS に合ったバージョンをダウンロードし、インストール指示に従います。
Python 3.X OS に合った python 3.X の最新バージョンをダウンロードし、インストール ウィザードの指示に従います。インストールを検証するには、コマンドラインで python --version  pip --version を実行します。どちらの場合もそれぞれのバージョンが表示されるはずです。
JMeter プラグイン マネージャー 役に立つ他の JMeter プラグインを入手するには、プラグイン マネージャーをダウンロードします。あるいは、 JUnit Report Plugin だけをインストールすることもできます。

サンプル プロジェクトの作成

JMeter をインストールしたら、サンプル プロジェクトを作成します。

注意: プロジェクトを作成するのではなく、事前構成済みのプロジェクトを使用するには、TestRail 自動化フレームワーク サンプル リポジトリからサンプル プロジェクトをクローンします。

すべてをゼロから作成したい場合は、次の手順に従います。

  • JMeter GUI を開くと、下の画像のようなエリアにアクセスできます。ここで、プロジェクトの名前を変更できます。
  • プロジェクトを右クリックし、[Add] > [Thread Group] を選択します。これがテスト計画の出発点となります。すべてのコントローラーとサンプラーは、スレッド グループの下に配置する必要があります。
  • スレッド グループを設定します。JMeter には、スレッド グループでカスタマイズ可能なさまざまな要素があります。要素はカスタマイズ可能:

    1. Number of Threads: 各スレッドは、他のテスト スレッドとは独立してテスト計画全体を実行します。
    2. Ramp-up period: JMeter が指定のスレッド数に到達するまでにかける時間を指定します。例: 10 スレッドを使用し、ランプアップ期間が 100 秒に設定されている場合、JMeter はこの期間に段階的にスレッドを開始します。
    3. Loop Count: デフォルトでは、スレッド グループはその要素を 1 回ループするように設定されています。この設定は必要に応じて調整できます。
  • 次に、スレッド グループを右クリックし、アクションとして HTTP リクエストを設定します。
    1. Server Name or IP: このサンプル プロジェクトでは、HTTP リクエストにターゲット サーバーのアドレスを入力するだけです。必要に応じてファイル名を変更できます。例: 指定されたサーバー名は www.google.com です ( http://を含める必要はありません)。
  • 次に、再びスレッド グループを右クリックし、リスナーとして JUnit Reporter を設定します。
      1. Filename: パフォーマンス テストのレポート ファイルを保存する場所を指定します。TRCLI は、このファイルを使用して TestRail に実行結果をアップロードします。
      2. Key Performance Indicators (KPIs): サンプルのテスト ケースでは、結果を評価するために 2 つのメトリクスを設定します。これはテスト ケースとして扱われます。TRCLI は JUnit レポートを読み込み、Metric、Comparator、Threshold フィールドを組み合わせてテスト ケース名を生成します。JMeter の Name フィールドに入力された値は、単にテスト対象のメトリクスを簡単に識別するための参照としてのみ使用されます。各 KPI は、TestRail でテストケースとして表示されます。
    Name Metric Comparator Threshold Test Objective
    Average less than 1000ms MEAN 1000 平均応答時間は1000ミリ秒未満である必要があります
    Not more than 1% sample errors ERRORS <= .01 実行されたテストのエラー率は0.01%未満である必要があります

サンプル プロジェクトの実行

JMeter GUI を使用して実行する:

パフォーマンス テストを手動で実行するには、緑色の再生ボタンをクリックするだけです。テストが開始されると、スタートボタンは灰色に変わり、操作できなくなります。右上隅で実行プロセスをモニターできます。

開始ボタンが再び緑色になったら、実行が完了したと判断できます。その時点で、実行レポートが分析に利用できるようになります。

メトリクスの設定例に従った場合、レポートは以下のようになります。レポートは、JUnit Reporter リスナーの設定時に指定したフォルダに保存されます。

<?xml version="1.0" encoding="UTF-8"?>
<testsuite errors="0"
failures="0"
name="JUnit Reporter_ TRintegration"
skipped="0"
tests="2">
<testcase classname="Average less than 100ms" name="MEAN(.*) &lt; 1000"/>
<testcase classname="Not more than 1% sample error" name="ERRORS(.*) &lt;= .01"/>
</testsuite>

JMeter コマンド ラインを使用して実行する

./jmeter.bat --nongui --testfile "C:\path\to\your\trcli\config\file\jmeter_perf_test.jmx"

TestRail への結果のインポート

TestRail CLI のインストール

すでにマシンに Python がインストールされている場合、TestRail CLI をインストールするには、コマンド ラインで次のコマンドを実行するだけです。

$ pip install trcli

TestRail の設定

次に、下の手順に従って TestRail インスタンスを設定する必要があります。

    1. [管理] > [サイト設定] に移動して [API] タブをクリックし、[API の有効化] オプションをオンにして TestRail API を有効化します。
    2. 自動テスト ケースのコードと実際の TestRail のケースをマッピングするためのカスタム フィールドを作成します。それには、[管理] > [カスタマイズ] に移動して [フィールドの追加] をクリックします。フィールド作成画面に移動したら、下記の 2 つの要件に従ってフィールドを作成します。
      • システム名 automation_id
      • [タイプ] は text にする必要があります。

TestRail への結果の送信

TestRail CLI をインストールし、TestRail インスタンスの設定が完了したら、結果をアップロードする前に行う手順はあと 2 つです。

まず、次のような TRCLI 設定ファイル (.yml ファイル形式) を作成する必要があります。

host: https://<TESTRAIL_HOST>.testrail.io
project: Performance_Integration
username: user@testrail.com
password: password
title: JMeter Performance Test Run
    • host: TestRail のインスタンスへのリンクです
    • project: ランが保存される場所です
    • username and password: 上記で指定したインスタンスの認証情報です。
    • title: 結果を保存するテスト ランの名前です

シェル スクリプトを使用して TRCLI を実行します。TestRail CLI は、シェル スクリプトを使用して効率的に実行できます。次のスクリプトは、Git Bash (.sh として保存) を使用した Windows 用のサンプルです:

clear
bold=$(tput bold)
TRCLI_CONFIG_PATH="C:\path\to\your\trcli\config\file\trcli-config.yml"
TRCLI_TEST_FILE="C:\path\to\your\trcli\config\file\jmeter_perf_test.jmx"
JMETER_RESULTS="C:\path\to\your\file\sample_results.xml"

echo "($bold)-------------------------------------"
echo "($bold)--- JMeter TestRail Sample Project --"
echo "($bold)-------------------------------------"

echo "($bold)... verify if TRCLI is installed:"
echo
trcli
echo

echo "($bold)... execute JMeter Load Test:"
echo
./jmeter.bat --nongui --testfile "$TRCLI_TEST_FILE"
echo

echo "($bold)... executing TestRail TRCLI to upload results in a new Test Run:"
echo
trcli -y --config "$TRCLI_CONFIG_PATH" parse_junit --file "$JMETER_RESULTS" --title "JMeter Demo"
echo

echo "($bold)... execution completed. New Test Run created."

レポート ファイルのデフォルトの場所を変更した場合は特に、-f オプションの後のファイル名がレポート ファイルへのパスに一致していることを確認します。この例では、ファイル パスの格納に変数を使用していますが、直接パスを指定することもできます。その他のオプションはすべて TestRail インスタンスおよびプロジェクトに合わせて設定します。

他のコマンド ライン オプションについては、プロジェクト リポジトリの TestRail CLI README.md ファイルまたは TRCLI のマニュアル ページを参照するか、下記のコマンドを実行して CLI の組み込みヘルプを参照します。

$ trcli --help
$ trcli parse_junit --help

TestRail での結果の可視化

TestRail プロジェクトのテスト ケース ページに移動すると、テスト結果レポートに含まれていたテストに対応するテストケースが TestRail によって自動的に作成されていることがわかるでしょう。

[テスト ランと結果] ページでは、JMeter Test Run という名前のテスト ランが作成されたのを確認できます。テスト ランを開き、各自動テスト結果の詳細をドリルダウンします。下の図に示すように、テスト自動化フレームワークが出力したエラー メッセージもテスト結果に登録されているため、テストが失敗した理由の高度な解析が可能です。

次のステップ

テスト結果が TestRail に集約されたので、失敗したテストのエラー メッセージも含めて自動テスト実行の結果を確認できるだけでなく、手動テストと自動テストをレポート上で集約し、アプリケーションに関する完全なテスト カバレッジを表示したり、テスト自動化プロセスを追跡したりすることも可能です。また、手動テストの結果だけでなく、自動テストの結果から任意の課題トラッカーに直接バグをレポートすることもできます。

TestRail のレポート機能を活用する方法については、TestRail のレポートおよびテスト メトリクスの動画を参照してください。