BAT CLI リファレンス

BAT CLI では、Anypoint Platform とのインテグレーションを介して API 機能監視コマンドラインインターフェースが提供されます。コマンドラインインターフェースでは、テストをローカルで実行し、継続的に API テストを行うために監視をスケジュールできます。CLI-xAPI を使用してクラウドでテストをスケジュールできます。

このリファレンスでは、​bat​ コマンドで使用できる構文と主要なオプションについて説明します。​bat​ コマンドを使用して、テストのデバッグと実行、テストをスケジュールするためのログイン情報の取得、テストのスケジュール、テストスケジュールのリスト、追加操作の実行ができます。

コマンドを正常に実行するには、BAT CLI でログインするアカウントに、コマンドで実行しているアクションで必要な権限が必要です。

必要な権限

bat​ コマンドを使用して Anypoint Platform で対応するアクションを実行するには、次の権限が必要です。

権限 アクション

Create Applications (アプリケーションの作成) (Runtime Manager)

非公開の場所の作成

Delete Applications (アプリケーションの削除) (Runtime Manager)

非公開の場所の削除

Manage Settings (設定の管理) (Runtime Manager)

非公開の場所の更新

View Environment (環境の表示)

BAT CLI を使用したログイン

View Organization (組織の表示)

BAT CLI を介したシークレットマネージャーの使用

Exchange Contributor (Exchange コントリビューター) (Exchange)

監視の作成または変更、スケジュールの追加または変更

Exchange Administrator (Exchange 管理者) (Exchange)

監視の作成、変更、削除、スケジュールの追加、変更、削除

Grant access to secrets (シークレットへのアクセス権の付与) (シークレットマネージャー)

シークレットマネージャーの使用

ログインオプション

bat​ コマンドを使用して API 機能監視アクションを実行するには、まず次のいずれかのログイン方法を使用してログインする必要があります。

接続アプリケーションを使用したログイン

bat [login --client-id --client-secret [--profile=<value>] --host=<value>]

このオプションでは、接続アプリケーションからクライアント ID とクライアントシークレットを使用して Anypoint Platform アカウントにログインします。これは、MFA (多要素認証) を使用するログインに代わる方法を提供します。そのため、2 番目の要素は不要です。組織の除外リストに含まれていない限り、非 SSO アカウントでは MFA が必須になりました。組織のシステム管理者が設定する接続アプリケーションについての詳細は、​「接続アプリケーション」​を参照してください。

ユーザー名とパスワードを使用したログイン

bat [login --username=<value> [--profile=<value>] --host=<value>]

このオプションでは、ユーザー名とパスワードを使用して Anypoint Platform アカウントにログインします。パスワードを要求する双方向コマンドが表示されます。

password for user [username]: <password>

login​ コマンドにオプション ​--password=<password>​ を含めることもできます。

ファイルに保存されたコマンドの実行

bat [<file> …​ | <option> …​]

各項目は次のとおりです。

  • file​ はパスおよびファイル名への相対パスです。

    file には次の基本名のいずれかと次の拡張子のいずれかが必要です。

    • 基本ファイル名: main、bat

    • 拡張子: .yaml または .yml

      引数を付けずに bat を実行すると、BAT は現在のディレクトリで YAML を読み取り、指定されたテストを実行します。 環境用に、​config​ フォルダーを作成して ​config​ で別の設定ファイルを追加できます。

  • bat ~/path/to/folder/
    目的のフォルダーから実行します。BAT は ​bat.yaml​ ファイルと ​main.dwl​ ファイルを検索して実行します。

  • bat ./folder/file.dwl
    目的のファイルを使用して実行します。プロジェクトのルートは現在のフォルダーです。 プロジェクトのルートはインポートを解決し、ライブラリおよびファイルを読み込むために使用されます。

bat​ コマンドのオプション

  • --help

    コマンドの使い方に関する情報を表示します。

  • --validate | -V

    ファイルまたはフォルダーを検証します。また、​--config​ と連携して特定の設定の検証も行います。

  • --config=<name>

    設定ファイルを (​config​ フォルダーから) 選択し、結果をグローバル変数として登録します。

  • --version

    インストールされた BAT のバージョン番号およびラッパーを標準出力に出力します。最新バージョンがインストールされていない場合、そのバージョンがダウンロードされます。

  • --update

    BAT CLI を最新バージョンに更新して、現在のフォルダーの ​.bat-version​ ファイルを設定します。プログラムは、テストを実行するときには常に ​.bat-version​ の設定を使用します。指定されたバージョンがインストールされていない場合は、実行前にダウンロードされてインストールされます。

  • --debug

    実行中は、トラブルシューティング情報を標準出力に送信します。

  • --track

    ローカル実行からデータを送信します。

  • --bat-version=<version>

    指定されたバージョンを使用して BAT を実行します。

  • --init-folder

    現在のディレクトリで監視を作成すると生成される ​exchange.json​ ファイルと ​main.dwl​ ファイルを保存します。省略可能。

  • --init

    基本的なプロジェクトフォルダーをセットアップする ​bat init​ コマンドと同じです。このフォルダーには以下のファイルが含まれます。

    .
    ├── bat.yaml
    ├── config
    │   ├── default.dwl
    │   ├── devx.dwl
    │   ├── qax.dwl
    │   └── stgx.dwl
    └── tests
        └── HelloWorld.dwl
  • --password=<value>

    値は Anypoint Platform ユーザー名に対応するパスワードです。存在しない場合は、環境変数 ​ANYPOINT_PASSWORD​ の値が使用されます。この変数の値が設定されていない場合は、ログイン情報ファイルのデフォルトパスワードが使用されます。

  • --profile=<value>

    プロファイルは次のとおりです。

    • Anypoint Platform の場所にアクセスし、BAT セッション間でログイン情報を保持するためのプロファイルの名前。このオプションを使用すれば、セッション間で再ログインする必要がなくなります。省略可能。

    • テストをスケジュールするためのプロファイルの名前であり、使用した BAT ログインプロファイルとは異なる場合があります。デフォルトでは、BAT はスケジュール用のログインプロファイルを使用します。省略可能。

    • 存在しない場合は、環境変数 ​ANYPOINT_PROFILE​ の値が使用されます。この変数の値が設定されていない場合は、デフォルトプロファイルが使用されます。

  • --username=<value>

    値は Anypoint Platform ユーザー名です。存在しない場合は、環境変数 ​ANYPOINT_USERNAME​ の値が使用されます。この変数の値が設定されていない場合は、ログイン情報ファイルのデフォルトユーザー名が使用されます。

  • --useProxy

    プロキシ経由で Anypoint Platform にアクセスする必要があるシステムでは、各 ​bat​ コマンドでこのオプションを使用します。

  • --client-id

    接続アプリケーションのクライアント ID。接続アプリケーションを使用してログインする場合、ログインコマンドでこのオプションを使用する必要があります。

  • --client-secret

    接続アプリケーションのクライアントシークレット。接続アプリケーションを使用してログインする場合、ログインコマンドでこのオプションを使用する必要があります。

bat​ コマンド

次の ​bat​ コマンドは、クラウドのインテグレーションの管理や、Anypoint Platform を使用したテストや監視のスケジュールや設定に使用できます。

  • init

    設定ファイル、HelloWorld 基本テスト、yaml 記述子ファイルの入った基本プロジェクトフォルダーをセットアップします。

  • schedule ls | list

    特定のプロファイルの組織に存在するすべてのスケジュールをリストします。

  • schedule create [--cron="<expression>"] [--location=<id>]

    Cron 式を使用し、テストおよびすべてのファイルが含まれる ZIP ファイルを生成して、スケジューラーを作成します。Cron 式を入力しない場合、テストは 15 分ごとに実行するようにスケジュールされます。

  • schedule endpoint <monitor-URL> [--cron="<expression>"] [--name=<suiteName>] [--location=<id>] [--new-relic-license-key=<newRelicLicenseKey>] [--slack-webhook=<slackWebHook>] [--email-list=<emails>] [--sumo-logic-endpoint=<sumoLogicEndpoint>] [--pager-duty-routing-key=<pagerDutyRoutingKey>] [--custom-report-url=<customReportUrl>] [--custom-report-headers=<header1,header2,…​,headerN>] [--custom-report-transformation=<pathToDwlFile>][--init-folder] [--status-code=<code>]

    URL (例: http://example.com​) を使用して Exchange で監視を作成します。必要に応じて、オプションを追加して別のパラメーターで ​bat.yaml​ を生成できます。

    • [--cron="<expression>"]​ デフォルトでは、テストは 15 分ごとに実行するようにスケジュールされます。Cron 式を使用して変更できます。

    • [--name="<suiteName>"]​ スイートの名前を設定します。

    • [--location="<id>"]​ 監視の特定の場所 ID を設定します。

    • [--new-relic-license-key="<newRelicLicenseKey>"]​ New Relic レポートを bat.yaml に追加します。

    • [--slack-webhook="<slackWebHook>"]​ Slack レポートを bat.yaml に追加します。

    • [--sumo-logic-endpoint="<sumoLogicEndpoint>"]​ Sumo Logic レポートを bat.yaml に追加します。

    • [--pager-duty-routing-key="<pagerDutyRoutingKey>"]​ PagerDuty レポートを bat.yaml に追加します。

    • [--custom-report-url="<customReportUrl>"] [--custom-report-headers="<header1,header2,…​,headerN>"] | [--custom-report-transformation="<pathToDwlFile>"]​ カスタムレポートを bat.yaml ファイルに追加し、必要に応じて変換ファイルを追加できます。

    • [--init-folder]​ 生成された exchange.json、bat.yaml、main.dml を現在のディレクトリに保存します。

    • [--status-code=<code>]​ コードを、テストテンプレート用の HTTP コードとして使用します。

  • schedule rm | remove <id>

    その ID を基準にスケジュールを削除します。

  • schedule disable <id>​ 指定された ID で特定されるスケジュールを無効にします。

  • schedule enable <id>

    指定された ID で特定されるスケジュールを有効にします。このコマンドは、​bat schedule disable <id>​ コマンドで無効にしたスケジュールを有効にする場合のみ使用します。

  • whoami

    基本ユーザー情報を標準出力に送信します。​--profile​ オプションを使用すると、他のプロファイルを使用することができます。

  • worker register [--name=<value>]

    マシン名を使用して投稿を生成し、ダミーの対象を作成します。

  • worker unregister [--name=<value>]

    ワーカーの登録を解除します。

  • worker id

    ワーカー ID を取得します。

  • location create <name>

    Anypoint Platform の特定のプロファイルの組織で非公開の場所を作成します。非公開の場所と公開された場所についての詳細は、​「公開 API のエンドポイントの監視」​および​「非公開 API のエンドポイントの監視」​を参照してください。

  • location delete <id>

    Anypoint Platform の特定のプロファイルの組織の非公開の場所のリストから非公開の場所を削除します。

    id

    場所を識別する ID を指定します。​bat location ls​ コマンドを実行して ID を取得できます。

  • location ls|list

    Anypoint Platform の特定のプロファイルの組織に存在する非公開の場所と公開された場所をリストします。これは ​target ls|list​ に代わるコマンドです。

  • location update <id>

    ID で指定された場所を更新します。ワーカーの新しいバージョンが使用できる場合は、最新バージョンを使用して場所を更新します。このオプションは、Mule の場所でのみ有効です。

  • get_token

    ログイン情報ファイルで Anypoint Platform にアクセスするためのトークンを返します。プロファイルを生成するには最初に ​bat login​ を実行する必要があります。

  • grant

    Anypoint シークレットマネージャーに保存されている共有シークレットにアクセスする権限を API 機能監視に付与します。テストで使用する共有シークレットにアクセスする権限またはレポーターにアクセスする権限を API 機能監視に付与する必要があります。

    共有シークレットを使用するようにテストまたはレポーターを設定する前に ​bat grant​ コマンドを実行します。コマンドで作成する別名は、テストおよびレポーターの設定で指定する別名です。

    bat grant -g=MySecretGroupName -s=MyAlias1:MySecretName1,MyAlias2:MySecretName2,…,MyAliasN:MySecretNameN [--forceUpdate]
    -g

    共有シークレットが保存されている Anypoint シークレットマネージャーのグループの名前を指定します。

    -s

    別名、コロン、共有シークレットの名前を指定します。別名は英数字の任意の組み合わせになります。共有シークレットの名前は、グループの共有シークレットを識別する名前です。1 つのコマンドを使用して、同じグループの複数の共有シークレットを使用する権限を BAT CLI に付与する場合、各 ​alias:name​ のペアをカンマで区切ります。 +シークレットは、BAT CLI を使用している環境にあるシークレットグループで作成されている必要があります。BAT CLI を使用している環境を確認するには、コマンド ​bat whoami​ を実行します。出力には環境の ID があります。アクセス権のある環境をリストするには、コマンド ​bat environment ls​ を実行します。​bat whoami​ コマンドの ID とリストされた環境の ID を照合します。シークレットグループが含まれる環境に切り替える必要がある場合、コマンド bat environment switch name を実行します。name は環境の名前です。

    --forceUpdate

    API 機能監視が共有シークレットへのアクセス権を失い、再度アクセス権を付与する必要がある場合、このオプションを指定します。

  • execution ls|list

    指定されたプロファイルで実行されている監視をリストします。プロファイルが指定されていない場合、デフォルトプロファイルが使用されます。リストされた監視はすべて、現在の環境にある、BAT CLI で記述および開始された現在のプロファイルの監視で、Anypoint Platform でオンラインで作成されています。

    出力は次のようになります。

    Last executions:
    
    	daily-retail-test:1.0.1                  PASSED     10 seconds ago
    	internal-run-api-check:1.0.0             PASSED     11 minutes ago
  • environment ls|list

  • environment switch <name>

    ls​ と ​list​ の 2 つのオプションは、指定されたプロファイルで使用できる環境をリストします。プロファイルが指定されていない場合、デフォルトプロファイルが使用されます。

    switch​ オプションを使用すると、リストされたいずれかの環境を使用できます。環境 ​Sandbox​ を使用する次の例のように、環境の名前をコマンドの最後に追加します。

    bat environment switch Sandbox

BAT コマンドの例

  • bat.yaml ファイルから複数のテストファイルを実行します。

    bat bat.yaml

  • 単一のファイルを実行します。

    bat ./test/myFile.dwl

  • インストールされたバージョンを判断します。

    bat --version

    最新バージョンでない場合の出力例:

    Updating Version: You have an older BAT version.
    The new version is downloaded in /Users/<username>/.bat/bat-cli-1.0.51
    Downloading version 1.0.51. Please wait`.......................
    BAT Wrapper: 1.0.53
    BAT Version: 1.0.51