テストスイートの例

サンプルテストスイートのコンテンツを確認するには、ターミナルでコンピューターのファイルシステムにディレクトリを作成します。次に、そのディレクトリに移動して ​bat init​ コマンドを実行します。このコマンドによって、次のフォルダーとファイルが作成されます。

.
├── bat.yaml
├── config
│   ├── default.dwl
│   ├── devx.dwl
│   ├── qax.dwl
│   └── stgx.dwl
└── tests
    └── HelloWorld.dwl

bat.yaml​ ファイルは、テストスイートのメインファイルです。この例には、次の行が含まれています。

suite:
  name: "Hello World Suite"
files:
  - file: tests/HelloWorld.dwl
reporters:
    - type: HTML
      outFile: /tmp/HTML.html
  # - type: SumoLogic
  #   options:
  #     SUMO_ENDPOINT: <sumo_source>
  # - type: PagerDuty
  #   options:
  #     PAGER_DUTY_ROUTING_KEY: <routing_key>
  # - type: Slack
  #   options:
  #     SLACK_WEBHOOK: <webhook_url>
  # - type: Email
  #   options:
  #     EMAILS: <email_list>
  # - type: NewRelic
  #   options:
  #     NEW_RELIC_LICENSE_KEY: <license_key>
  # - type: JSON
  #   outFile: /tmp/JSON.json
  # - type: JUnit
  #   outFile: /tmp/JUnit.xml

各テストスイートのルートレベルに ​bat.yaml​ ファイルが含まれている必要があります。

サンプル ​bat.yaml​ ファイルの ​suite​ セクション

suite​ セクションでスイートの名前が設定されます。記述するスイートには任意の名前を使用できます。

サンプル ​bat.yaml​ ファイルの ​files​ セクション

このサンプルテストスイートには、1 つのテストのみが含まれています。テストは、​tests​ フォルダーのファイル ​HelloWorld.dwl​ として ​files​ セクションにリストされます。

テストを作成するときに、​bat.yaml​ ファイルでテストに参照を追加します。たとえば、テストスイートディレクトリで、​api-tests​ という名前のフォルダーを作成し、そのフォルダーに ​first-test.dwl​ という名前のテストを記述するとします。​bat.yaml​ ファイルの ​files​ セクションで、次のインデントされた行を追加します。

  file: api-tests/first-test.dwl

second-test.dwl​ という名前の 2 番目のテストを記述する場合、次の行を追加します。

  file: api-tests/second-test.dwl

テストをリストする順序によって、BAT CLI によるテストの実行順序が決まります。この例では、テスト ​shoppingCart.dwl​ の前にテスト ​orderFulfillment.dwl​ が実行されます。

files:
  file: retail-site-tests/orderFulfillment.dwl
  file: retail-site-tests/shoppingCart.dwl

shoppingCart.dwl​ テストの後に ​orderFulfillment.dwl​ テストを実行するには、リストされている順序を変更します。

files:
  file: retail-site-tests/shoppingCart.dwl
  file: retail-site-tests/orderFulfillment.dwl

最後に、テストスイートのテストが含まれるフォルダーを複数作成できます。テストが含まれるフォルダー内にサブフォルダーを作成することもできます。​bat.yaml​ ファイルの ​files​ セクションでテストをリストするときは正しい相対パスを指定するようにしてください。

bat.yaml​ ファイルの ​reporters​ セクション

これは、テストの失敗を報告するようにさまざまなツールやサードパーティアプリケーションを設定するセクションです。この例では、​HelloWorld.dwl​ テストが失敗したときに、失敗のレポートをファイル ​/tmp/HTML.html​ に書き込むように BAT CLI に要求します。レポートのセットアップについては、​「テストレポートの設定および表示」​を参照してください。

bat.yaml​ ファイルの ​secrets​ セクション

非公開の場所からテストスイートを実行する場合、BAT CLI の Anypoint シークレットマネージャーとのインテグレーションを使用して、テストで共有シークレットを使用できます。

config​ フォルダー

config​ フォルダーには、ファイルの変数を保存できます。たとえば、API を開発して ​dev​ と ​qa​ の 2 つの環境にデプロイするとします。前者のエンドポイント URL は ​dev.myapi.com​ で、後者のエンドポイント URL は ​qa.myapi.com​ です。API は両方の環境で同様に動作します。

両方の環境で API をテストしたいと考えています。ただし、​dev​ の API のデプロイメントと ​qa​ の API のデプロイメントのために 2 つのテストをコーディングする代わりに、各環境の設定ファイルを作成できます。設定ファイルごとに、対応する環境のエンドポイント URL を格納する ​url​ という名前の変数を配置できます。

dev.dwl​ のコンテンツ (​dev​ 環境の設定ファイル)
{
url: "dev.myapi.com"
}
qa.dwl​ のコンテンツ (​qa​ 環境の設定ファイル)
{
url: "qa.myapi.com"
}

テストでは、​url​ 変数を ​$(config.variable)​ の構文内に配置して使用できます。​variable​ は、使用する変数の名前です。次のサンプルテストでは、​GET​ 要求で ​url​ 変数を使用して、応答コードが 200 である必要があるアサーションをテストします。

import * from bat::BDD
import * from bat::Assertions
---
suite("Hello world suite") in [
  it must 'answer 200' in [
    GET `$(config.url)` with {} assert [
      $.response.status mustEqual 200
    ]
  ]
]

テストを実行するときに、​--config​ パラメーターを使用して、使用する設定ファイルを指定できます。テストスイートを監視として Anypoint Platform の API 機能監視にアップロードする場合、監視のスケジュールの作成時に使用する設定を指定できます。

設定ファイルの形式として JSON、ファイル拡張子として ​.dwl​ を使用します。各ファイルに配置できる変数の数に制限はありません。

tests​ フォルダー

サンプルテストスイートでは、テスト ​HelloWorld.dwl​ は ​tests​ という名前のフォルダーにあります。この例の ​bat.yaml​ ファイルに関するセクションで説明されているように、​bat.yaml​ ファイルの ​files​ セクションではテストスイートのテストを参照します。

files:
  - file: tests/HelloWorld.dwl

各自のテストスイートでは、テストが含まれるフォルダーにファイルシステムで有効な任意の名前を付けることができます。複数のフォルダーにテストを配置することもできます。