実行API と統合 する

Tosca CI/CDインテグレーションにより、Tricentis ToscaをCI/CDパイプラインに組み込むことができます。また、例えばToscaがインストールされていない環境など、他の環境と組み合わせることもできます。

Tricentis Toscaには、Tosca CI/CDの統合にいくつかの方法が提供されています。このトピックでは、CI/CD パイプラインの柔軟性を最大限に高める Tosca Server の実行API と直接統合する方法について説明します。

実行API アーキテクチャ

前提条件

  • Tosca Serverの実行 APIと統合するには、AOSを使用したTosca Distributed Execution またはToscaクラウド統合のいずれかを利用することができます。

  • HTTPS バインディングで Tosca Server を使用する場合は、 TricentisTricentisTosca ユーザー管理から個人APIアクセストークンを取得する必要があります。実行APIアクセストークンを取得するには、トークンのClientID とクライアントシークレットが必要です。

イベントを理解する

Tosca サーバー実行APIとの統合は、がイベントと連携して動作します。イベントとは、実行する TestEvents または ElasticExecutionGridEvents のコレクションのことです。また、TestEventまたは ElasticExecutionGridEvent が1つだけあるイベントを持つこともできます。

Toscaがランタイムでどのように実行を処理するかを定義するには、テストコンフィギュレーションパラメータと特性をイベントに追加します。

テストコンフィギュレーションパラメータを使用する

テスト構成パラメータは通常、例としてUI テストに使用するブラウザの環境情報を定義します。イベントで定義したパラメータは、個々のテストに設定したパラメータを上書きします。これにより、複数のテストを再設定することなくテストランを微調整できます。

例えば、2つのExecutionListで構成されるTestEventがあるとします。両方のExecutionListsには、テストコンフィギュレーションパラメータを設定しています。一方はChromeで、もう一方はFirefoxで実行する必要があります。しかし、この特定のテストランでは、Safariで両方のExecutionListsを実行したいのです。ExecutionListsを再設定する代わりに、イベント内でブラウザパラメータを設定することができます。ランタイムで、ToscaはExecutionListsのパラメータの代わりにこのパラメータを適用します。

特性を使用する

特性は、どのエージェントがテストを実行するかを定義いたします。

イベントで定義した特性は、TestEventsまたはElasticExecutionGridEvents で定義した特性を上書きします。これにより、複数のテストを再設定することなくテストランを微調整できます。

イベントに2つのTestEventがあるとします。一方は、実行する Agent が2GBのメモリを必要とすることを指定し、もう一方は、実行する Agent が4GBを必要とすることを指定します。ただし、この特定の実行は、8GBのメモリを持つ Agent でのみ実行される必要があります。TestEventsを再設定する代わりに、必要な特性をご自身のイベントに設定することができます。そうすることでToscaは、ランタイムでテストイベントの代わりにその特性を適用します。

リクエストの概要

実行API には以下のリクエストを送信できます。

Swaggerで体験する

機能を実際に試してみたい場合、Swaggerにアクセスしましょう:

http://<Tosca Server <span class="Product_Name">Gateway</span> IP address or hostname>:<Gateway port>/automationobjectservice/swagger/index.html

注意: SwaggerにはHTTPでのみアクセスできます。

実行APIアクセストークンをリクエストする

HTTPSバインディングでTosca Serverを使用する場合、リクエストを認証する必要があります。すべてのリクエストには実行APIアクセストークンが含まれている必要があります。

実行APIアクセストークンを取得するには、 http(s)://:/tua/connect/token にリクエストを送信します。TricentisTricentisTosca ユーザー管理からの個人APIアクセストークンのClientID とクライアントシークレットを含めます。

 

cURL を使用したリクエストの例です。

コピー
curl --location --request POST 'https://111.111.111:443/tua/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<clientId of your TUA personal access token>' \
--data-urlencode 'client_secret=<clientSecret of your TUA personal access token>'

実行をトリガーする

イベントの実行をトリガーするには、次のリクエストを送信します。

POST /api/Execution/Enqueue

  • リクエストに CSRFヘッダー X-Tricentis を必ず追加してください。

リクエストボディ

以下のリクエストボディを追加してください。

コピー
{
  "projectName": "string",
  "executionEnvironment": "string",
  "events": [
    {
      "eventId": "string",
      "parameters": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "characteristics": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
  ],
  "importResult": true,
  "creator": "string"
}

以下の値を追加します。

パラメータ

説明

projectName

イベントが配置されているToscaプロジェクトのプロジェクト ルート名

executionEnvironment

イベントを実行する環境。Dex あるいは ElasticExecutionGrid を入力します。

eventId

TestEvent またはElasticExecutionGridEventの名前、またはプロパティ UniqueId の値です。テストイベント/ElasticExecutionGridEvents は、カンマ区切りで複数指定できます。

parameters

テストコンフィギュレーションパラメータを定義します

例:

"parameters": {
   "Browser": "Firefox",
   "SynchronizationTimeout": "1700",
   "SelfHealing": "Combination"
}

characteristics

どのエージェントがテストを実行するかを定義します。

例:

"characteristics": {
   "Memory": "2GB",
   "FirefoxInstalled": "yes",
   "UseRDP": "True"
}

importResult

結果をToscaにインポートするかどうかを指定します。

  • true を入力すると、結果をToscaの実行リストで表示します。

  • false を入力すると、JUnit形式の結果のみ取得します。

creator

実行をトリガーした人の名前。DEX Monitor にはこの名前が表示されます。デフォルトは ToscaExecutionClient です。

以下は、 cURL を使用したリクエストの例です。

curl --location --request POST 'https://111.111.111:443/automationobjectservice/api/Execution/enqueue' \
--header 'Content-Type: application/json' \
--header 'X-Tricentis: OK' \
--header 'Authorization: Bearer <your Execution API access token>' \
--data-raw '{
    "ExecutionEnvironment": "Dex",
    "ProjectName": "MyProjectRootName",
    "Events": ["TestEvent 1", "TestEvent 2"],
    "ImportResult": true,
    "Creator": "MyClientX"    
}'

成功した場合の応答

リクエストが成功すると、応答は実行IDを返します。他のすべてのリクエストにはこのIDが必要です。

レスポンスに関する詳細につきましては、Swaggerのドキュメントを参照してください。

http://<Tosca Server <span class="Product_Name">Gateway</span> IP address or hostname>:<Gateway port>/automationobjectservice/swagger/index.html

イベントの現在のステータスを確認する

イベントの現在のステータスを確認するには、以下のリクエストを送信してください。

GET /api/Execution/{Execution ID}/Status

  • リクエストに CSRFヘッダー X-Tricentis を必ず追加してください。

cURL を使用したリクエストの例です。

curl --location --request GET 'https://111.111.111:443/automationobjectservice/api/Execution/1a2b3c/status' \
--header 'X-Tricentis: OK' \
--header 'Authorization: Bearer <your Execution API access token>' \

成功した場合の応答

リクエストが成功した場合、応答はイベントの状態や実行結果がすでにインポートされているかどうかを返します。Tosca Cloud環境でTestEventを実行される場合、サブステートも取得できます。

レスポンスに関する詳細につきましては、Swaggerのドキュメントを参照してください。

http://<Tosca Server <span class="Product_Name">Gateway</span> IP address or hostname>:<Gateway port>/automationobjectservice/swagger/index.html

イベントの結果を取得します

テスト対象アプリケーションが期待通りに動作したかどうかを確認するために、以下のリクエストを送信してください。

GET /api/Execution/{Execution ID}/Results

  • リクエストに CSRFヘッダー X-Tricentis を必ず追加してください。

完全な結果を取得するための cURL を使用したリクエストの例:

curl --location --request GET 'https://111.111.111:443/automationobjectservice/api/Execution/1a2b3c/results' \
--header 'X-Tricentis: OK' \
--header 'Authorization: Bearer <your Execution API access token>' \

実行が完了する前の部分的な結果を取得するための、 cURL を使用したリクエストの例:

curl --location --request GET 'https://111.111.111:443/automationobjectservice/api/Execution/1a2b3c/results?partial=true' \
--header 'X-Tricentis: OK' \
--header 'Authorization: Bearer <your Execution API access token>' \

成功した場合の応答

リクエストが成功した場合、応答はJUnit形式で結果を返します。

レスポンスに関する詳細につきましては、Swaggerのドキュメントを参照してください。

http://<Tosca Server <span class="Product_Name">Gateway</span> IP address or hostname>:<Gateway port>/automationobjectservice/swagger/index.html

イベントの結果概要を取得する

1つのイベントには複数のテストイベントあるいはElasticExecutionGridEvents を含めることができます。進行中、合格、失敗、またはToscaが処理できなかったためにスキップされた件数の高レベルの概要をリクエストすることができます。そのためには、以下のリクエストを送信してください。

GET /api/Execution/{Execution ID}/Results/Summary

  • リクエストに CSRFヘッダー X-Tricentis を必ず追加してください。

cURL を使用したリクエストの例:

curl --location --request GET 'https://111.111.111:443/automationobjectservice/api/Execution/1a2b3c/results/summary' \
--header 'X-Tricentis: OK' \
--header 'Authorization: Bearer <your Execution API access token>' \

成功した場合の応答

リクエストが成功すると、応答は概要を返されます。

レスポンスに関する詳細につきましては、Swaggerのドキュメントを参照してください。

http://<Tosca Server <span class="Product_Name">Gateway</span> IP address or hostname>:<Gateway port>/automationobjectservice/swagger/index.html