はじめに

Parasoft gRPC Transport Extension は、SOAtest のメッセージクライアントツールに適切な Google Remote Procedure Call トランスポートのサービスを追加します。gRPC を介して送られるメッセージを設定、送信、検証するときに、SOAtest の豊かなインターフェイスをフルに活用できます。 

要件

  • gRPC 1.0.0 以降
  • Parasoft SOAtest 2022.1 以降

インストール

Parasoft Kafka Transport Extension は UI またはコマンドラインからインストールできます。

UI からのインストール

  1. [Parasoft ] > [設定] を選択し、[システム プロパティ] を選択します。
  2. [JAR の追加] をクリックし、com.parasoft.soavirt.transport.grpc-<version>.jar ファイルを選択します。
  3. [適用] をクリックします。
  4. SOAtest/Virtualize を再起動します。

コマンドラインからのインストール

設定プロパティ ファイルの system.properties.classpath プロパティに com.parasoft.soavirt.transport.grpc-<version>.jar ファイルを追加します。例:

system.properties.classpath=<PATH_TO_JAR>/com.parasoft.soavirt.transport.grpc-<VERSION>.jar

使用方法

メッセージ クライアント ツール (Messaging Client、ProtoBuf Client など) の [トランスポート ] タブで gRPC Transport の使用を有効にします。[トランスポート] メニューから [カスタム拡張] を選択し、[実装の選択] メニューから [gRPC] を選択します。 

設定

設定は以下のグループに分かれています。

  • 接続
  • Transport Layer Security
  • Call
  • Metadata Custom Headers
  • Streaming
  • Logging
  • 接続管理

以下でそれぞれのグループについて説明します。  

接続設定

HostgRPC サーバーのホスト名を指定します。
Port

上記で指定されたホストのポートを指定します。値は 1 から 65535 でなければなりません。

Transport Layer Security 設定

Auth Mechanism

gRPC サーバーとの接続に使用する認証メカニズムを指定します。選択肢は SSL または insecure です。

Default = insecure

Trust Certificate File

gRPC サーバーを識別するための PEM フォーマットの証明書ファイルへのパスを指定します。自己署名証明書を使用する gRPC サーバーの場合に必要です。ルート認証局からのパブリック証明書を使用する gRPC サーバーに対してシステムのトラスト ストアを使用する場合は、このフィールドを空のままにします。

認証メカニズムに insecure が指定されている場合、このフィールドは無視されます。

Call 設定

Service Name

呼び出す gRPC サービスの名前を指定します。

Method Name呼び出す gRPC メソッドの名前を指定します。
Access Token各呼び出しで使用するアクセス トークンを指定します。アクセス トークンが不要な場合は、このフィールドを空白のままにします。
Expected Status Codes

返されることが予想されるステータス コードを 1 つ以上指定します。コードには、数値またはテキスト名を入力できます。たとえば、クライアントが無効な引数を指定することが予想される場合は、"3" または "INVALID_ARGUMENT" と入力できます。コードおよび/またはコードの範囲をカンマで区切って入力します。たとえば、"0, 3-5」 指定した場合、コード 0、3、4、5 が受け入れられます。範囲を指定する場合は数字とテキスト名を混在させることはできませんが、単一のコードに名前を使用する場合は両方を使用できます (前の例では、"OK, 3-5」 も同じ動作になります)。

使用可能なコードの完全なリストについては、gRPC ステータス コード 参照してください。

デフォルトは 0 です。

メタデータカスタムヘッダー設定

Key 1 - 4

各 gRPC 呼び出しのメタデータで送信するカスタムヘッダーのキーを指定します。最大 4 つのカスタムヘッダーが許可されます。指定するキーには対応する値が必要です。

キーは大文字と小文字を区別せず、接頭辞 grpc- で始めることはできません。バイナリ値のキーは、接尾辞 -bin で終わる必要があります。

Value 1 - 4

各 gRPC 呼び出しのメタデータで送信するカスタムヘッダーの値を指定します。最大 4 つのカスタムヘッダーが許可されます。指定する値には対応するキーが必要です。バイナリ値は base64 でエンコードされている必要があります。

Streaming 設定

Call ID

複数のオープンな gRPC 呼び出しの間で切り替えるための呼び出し ID を入力します。

Default = <default>

Mode

ストリーミング モードを指定します。オプション:

  • unary - ストリーミングなし。  単一のリクエストを送信し、単一のレスポンスを待機します。
  • send - レスポンスを待機せずに 1 つのクライアント リクエストをストリーミングします。
  • receive - リクエストを送信せずにサーバー ストリームからの次のレスポンスを待機します。

Default = unary

Notification

通知タイプを指定します。オプション:

  • next - ストリーム上で次のメッセージを送信または受信します。
  • error - クライアント エラーを送信するか、予期されたサーバー エラーをチェックします。
  • completed - クライアント ストリームが完了したことを通知するか、サーバー ストリームが完了したかどうかをチェックします。

Default = next

Logging 設定

Log Levelコンソールに表示する情報の量を指定します。デフォルト値は 2 (警告)です。

Connection Management 設定 

Keep connection alive

使用する gRPC チャネルを持続して今後の呼び出しで再利用するには、このオプションを有効化します。

Close connection after test execution

呼び出しが完了した後に gRPC チャネルをクローズするには、このオプションを有効化します。

さまざまな gRPC メソッドのテスト

gRPC メソッドは次の 4 つのいずれかとして動作します。

  • Unary
  • Server streaming
  • Client streaming
  • Bidirectional streaming

SOAtest は単一のメッセージング クライアント (または ProtoBuf クライアント) を使用して unary gRPC メソッドをテストします。クライアントのリクエストが gRPC サーバー上のメソッドに送信され、テストはレスポンス メッセージまたはエラーを待機します。これは gRPC カスタム トランスポートのデフォルトのモードです。

他の 3 つのストリーミング対応 gRPC メソッド タイプをテストするには、複数のメッセージング クライアント (または ProtoBuf クライアント) が必要です。いずれの場合も、クライアント リクエストとサーバー レスポンスは分離されています。送信用に設定されたツールにはレスポンス ペイロードがなく、受信用に設定されたツールはリクエスト ペイロードを無視します。また、リクエストを送信した後は、1 つのリクエスト メッセージだけを受け取るサーバー ストリーミング メソッド タイプであっても、SOAtest から完了通知を送信する必要があります。完了通知を受信するよう設定されたツールは完了イベントを待機し、別のレスポンス メッセージを受信するとエラーをレポートします。この動作により、ループ処理するテスト スイート内でストリームが完了したかどうかをチェックすることで、SOAtest は数が動的に変化するレスポンス メッセージを処理することができます。

変更ログ

1.1

  • 設定セクションの再編成
  • gRPC 呼び出し認証情報におけるトークンベースの認証
  • gRPC メタデータのカスタムヘッダーを送信し、トラフィックビューアに表示
  • gRPC 呼び出しから期待されるステータスコードを確認する

1.0

  • 初回リリース

サード パーティのコンテンツ

この拡張機能は、以下のサード パーティのコンテンツを含みます。

ライセンスの詳細は、プラグインの licenses フォルダーにあります。

  • No labels