はじめに

SOAtest では、OpenAPI/Swagger 定義に記述されたエンドポイントに基づいて .tst ファイルを自動生成することができます。OpenAPI/Swagger ウィザードで生成した .tst には、定義されたすべてのエンドポイントに対応する REST Client が作成されます。  

以下の仕様をサポートします。

  • Swagger 1.0 - 2.0。これらの仕様と互換性がある Swagger Core のバージョンもサポートされます (たとえば Swagger Core 1.0.0、1.2.4、1.3.12、1.5.0-M1、1.5.0)。
  • OpenAPI/Swagger 3.0。

OpenAPI/Swagger 定義からのテストスイートの作成

有効な OpenAPI/Swagger 定義からテスト スイートを作成するには、次の操作を行います。

  1. テスト ケース エクスプローラーで [新規追加] > [テスト (.tst)] を選択します。 
  2. ファイル名を指定し、[次へ] をクリックします。 
  3. [REST] > [OpenAPI/Swagger] オプションを選択し、[次へ] をクリックします。テスト作成ウィザードにアクセスする方法については、「既存プロジェクトへ新規 .tst ファイルを追加」および「Adding a New Test Suite」を参照してください。
  4. OpenAPI/Swagger 定義を指す URI の絶対パスを入力するか、[参照] ボタンをクリックしてローカル システムのファイルを指定します。 
  5. テスト スイートの種類を選択します。
    • 個別のクライアント: API リソースごとにグループ化された個別のテスト クライアントを生成します。各リソースに対して、そのリソースで利用可能なすべてのメソッドのテストクライアントを含むテストスイートが生成されます。
    • テストシナリオ: さまざまな API リソースのシーケンスを含むテスト シナリオを生成します。テスト スイートはシナリオごとに生成されます。LLM プロバイダーの設定で構成されたアカウント情報とチャットおよび埋め込みモデル (両方を指定していることを確認してください) を使用して、LLM プロバイダーの REST API を使用します。
      • このオプションを選択した場合は、[次へ] をクリックし [テスト シナリオの生成] ページに進みます。作成するテスト シナリオに関する LLM モデルへの簡単な指示を入力し (「AI プロンプトの作成」を参照。フィールド上のメニューを使用して例や最近のプロンプトを表示することもできます)、[生成] をクリックします (これには数秒かかる場合があります)。LLM にさらにシナリオを作成させたい場合は、[さらに生成] をクリックします。LLM にすべてのシナリオを破棄して最初からやり直す場合は、[再生成] をクリックします。いずれかの操作を行う前に、LLM のプロンプトを変更できます。使用するシナリオを有効にし、使用しないシナリオを無効にします。
      • 注意: この機能はプロバイダーの LLM に依存しており、不正確な情報が生成される可能性があります。結果を注意深く確認してください。
  6. [次へ] をクリックします。[環境の作成] ページが開きます。
  7. (任意) 既存の環境を参照するか、新しい環境を作成するかを指定します。
    • 新しい環境を作成するには、次の操作を行います。
      1. [プロジェクトの新規環境を作成] を有効にします。
      2. [環境名] および [変数接頭辞] フィールドに入力します。
    • 既存の環境を参照するには、[既存の環境の参照] を有効にし、適切な環境ファイルを指定します。
    • 環境についての詳細は、「異なる環境でのテスト構成」を参照してください。
  8. [終了] をクリックします。

生成された .tst には、OpenAPI/Swagger 定義に記述されたリソース/メソッドのペアごとに 1 個の REST Client が作成されます。  

  • 各 REST Client は、指定されたサービス定義およびスキーマ (適用可能な場合) の制約を受けるよう設定されています。
  • REST Client のリソース URL、HTTP メソッド、およびペイロード (適用可能な場合) も、定義に従って構成されています。
  • サービスのベース URL は "BASEURL" 変数として構成されます。各 リソース URL は、"BASEURL" 変数を使ってパラメータライズされます。
  • クエリー パラメーターは、サービス定義に従ったデフォルト値またはサンプル値 (利用可能な場合) と共に記録されます。
  • サービス定義にスキーマが含まれている場合、サンプル ペイロードはスキーマから構築され、スキーマの制約を受けます。

さらに、OpenAI で作成されたテスト シナリオには、適切なスマート テスト テンプレートが自動的に適用されます。

AI プロンプトの作成

LLM プロバイダーを利用してテスト シナリオを作成することもできますが、LLM モデルから最良の結果を得るには、いくつか留意すべき点があります。例えば、アプリの一般的なプロンプトを作成するとき、それがどのような種類のアプリであるかを LLM に伝えると役立つ場合があります。例:

このバンキング アプリのテスト シナリオを生成します。

生成されるテスト シナリオの種類をより詳細に制御するために、より詳細なプロンプトを作成することもできます。CRUD のプロンプトの例を次に示します。

次のパターンに従う 5 つのテスト シナリオを生成します。

1) コレクションに対する GET リクエスト

2) コレクションに追加する POST リクエスト

3) コレクションに対する GET リクエスト

4) 特にコレクションに新しく追加されたアイテムに対する GET リクエスト

5) 特にコレクションに新しく追加されたアイテムに対する PUT リクエスト

6) 特にコレクションに新しく追加されたアイテムに対する GET リクエスト

7) 特にコレクションに新しく追加されたアイテムに対する DELETE リクエスト

8) コレクションに対する GET リクエスト

希望する結果が得られない場合は、チャットベースのAIアシスタントを使用してテストシナリオを作成すると役立つ場合があります。

  • No labels