ページを選択

Postman との統合

Postman は、API の設計、テスト、管理を効率化する API プラットフォームです。Postman は API のライフサイクル全体を合理化し、コラボレーションを容易にします。

Newman は Postman Collections を実行するためのコマンドライン ツールであり、Postman アプリの代わりにコマンドラインからコレクションを実行しテストできます。Newman は拡張性の高い設計であるため、継続的インテグレーション (CI) パイプラインやビルド システムに統合できます。

このチュートリアルでは、TestRail CLI を使用して、Postman の自動テスト実行 (Newman CLI を使用) で生成されたテスト結果を TestRail に統合する方法を説明します。統合によって、自動テストの結果を中央で管理し、TestRail が提供するすべての解析およびレポート機能を活用できます。

概要

このチュートリアルでは、サンプル プロジェクトを使用して、TestRail CLI と互換性がある Postman の自動テスト プロジェクトをセットアップし、生成されたテスト結果をアップロードする手順を案内します。

このチュートリアルを通して読むと、以下のことができるようになります。

    • 簡単な Postman プロジェクトからテストを実行する
    • TestRail CLI をインストールする
    • TestRail インスタンスを設定する
    • CLI を実行する
    • TestRail でテスト ケースとテスト結果を確認する

前提条件

Postman テスト プロジェクトを実行するには、 npm を使用して Newman をインストールします。npm を使用して Postman Newman をインストールするのに必要なのは、Node.js をインストールすることだけです。

また、TestRail への結果のインポートに使用する TestRail CLI をインストールし、実行するには、Python も必要です。

前提条件 説明
Node.js OS に合ったバージョンをダウンロードし、インストール ウィザードの指示に従います。
正常にインストールされたことを確認するには、コマンド ラインから次のコマンドを実行します。 node --version および npm --version すると、インストールされたバージョンが出力されます。
Python 3.x OS に合ったバージョンをダウンロードし、インストール ウィザードの指示に従います。正常にインストールされたことを確認するには、コマンド ラインから python --version および pip --version コマンドを実行します。すると、バージョンが出力されます。

サンプル プロジェクトのインストール

まず、サンプル プロジェクトのコードを取得し、必要な依存ライブラリをインストールします。

    1. サンプル プロジェクトをクローンまたはダウンロードします。
    2. プロジェクトのルート フォルダーでコマンド プロンプトを開いて次のコマンドを実行します。
npm install -g newman

サンプル プロジェクトの確認

プロジェクトの編集、操作、検証を行うには、以下の 2 つの方法があります。このチュートリアルでは、実行結果のインポート方法に集中できるよう、自動テストのコードはシンプルにしてあります。テストはログイン ページの簡単な操作で構成されます。

    • これらのテストで実行されるリクエストを編集する場合、Postman で直接処理し、その後コレクションをダウンロードするのが比較的簡単な方法であり、確実にファイルを JSON フォーマットで保存できるでしょう。

    • 任意の IDE を使用してすべてのテスト実行を設定し、Newman CLI を使用してリクエストをトリガーしたら、TRCLI 経由で結果を TestRail にアップロードします。

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

サンプル プロジェクトを実行するにには 2 つの方法があります。用意されている コード サンプル には、ダウンロード可能なプロジェクトがありますが、GitHub Actions ファイルもあります。このファイルを使うことで、CI パイプラインにプロジェクトを追加し、パイプラインがトリガーされるたびに自動的に実行されるようにできます。両方の方法を説明します。

手動で実行する

リポジトリからコード サンプルをダウンロードしたら、後は次のスクリプトを実行し、newman_junit.xml という名前のファイルに保存された結果を検証するだけです。

newman run API_Test_Demo.postman_collection.json -r cli,junit --reporter-junit-export ./reports/newman_junit.xml

結果は次のようになります。

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: PostmanNewmanCLI_Integration
username: user@testrail.com
password: password
title: Postman Newman CLI Test Run
    • host: TestRail のインスタンスへのリンクです
    • project: ランが保存される場所です
    • username and password: 上記で指定したインスタンスの認証情報です。
    • title: 結果を保存するテスト ランの名前です

TRCLI のコマンドライン実行は、 Git Bash (.sh ファイル形式として保存する必要があります) を使用して Windows マシンで実行した以下のサンプルのように、一般的なシェル スクリプトを使用して簡単に構成して実行することができます。

#!/bin/bash
clear
bold=$(tput bold)
echo "${bold}-------------------------------------------"
echo "${bold}--Postman Newman Automation TestRail Demo--"
echo "${bold}-------------------------------------------"
echo

echo "${bold}...verify TRCLI is installed"
echo

trcli
echo

echo "${bold}...install the Newman Postman project, resolve dependencies"
echo

npm install -g newman
echo

echo "${bold}...executing Newman API Postman tests"
echo
newman run API_Test_Demo.postman_collection.json -r cli,junit --reporter-junit-export ./reports/newman_junit.xml

echo

echo "${bold}...executing TestRail CLI, uploading results in new test run"
echo

trcli -y -c "trcli-config.yml" parse_junit -f "./reports/newman_junit.xml" --title "Automation Demo - Newman Postman API Tests"
echo

echo "${bold}...execution complete"
echo

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

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

$ trcli --help
$ trcli parse_junit --help

TestRail での結果の可視化

TestRail プロジェクトのテスト ケース ページに移動すると、テスト結果レポートに基づいて、TestRail によってテストケースが自動的に作成されていることがわかるでしょう。JUnit レポートのテストごとに classname および name 属性を組み合わせて一意の Automation ID が追加されています。

この Automation ID を使用して自動化コードのテストと TestRail のテスト ケースをマッピングします。つまり、TestRail CLI を実行するたびに、TestRail の既存のテスト ケースと比較し、該当する Automation ID を持つテスト ケースがない場合にだけ新しいテスト ケースを作成します。

テストのメトリクス、ファイル名、またはファイルの場所を変更した場合、テストの Automation ID が変わるため、 TestRail の既存のテスト ケースにマッピングされません。

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

次のステップ

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

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