このセクションの内容:
概要
MQTT Extensions は、Parasoft SOAtest および Parasoft Virtualize のカスタム拡張です。MQTT Extensions をクライアント側(SOAtest)で使用して様々なタスクを実行できます。
- トピックをパブリッシュする
- 指定された数のメッセージを受信するまで、または指定された時間が経過するまでトピック フィルターをサブスクライブする
- テスト時にトピック フィルターをモニターし、発生したイベントに対して検証を実行する
サーバー側(Virtualize)では、リスナー拡張を使って Topic フィルターをサブスクライブし、受信するサブスクリプション メッセージに基づいて Topic にパブリッシュすることができます。
MQTT Extensionsは以下のカスタム拡張を提供します。
- MQTT Transport: MQTT メッセージをパブリッシュするためのトランスポート プロトコルです。
- MQTT Subscriber: 指定の持続時間を過ぎるまで Topic フィルターをサブスクライブするために使用します。
- MQTT Message Listener: Topic フィルターをサブスクライブし、仮想化したメッセージをパブリッシュするために使用されるメッセージ リスナーです。
- MQTT Event Monitor: イベント モニタリング インターフェイスへのエントリ ポイントです。テスト中に受け取ったメッセージ イベントをレポートするために Topic をサブスクライブします。
- MQTT Configure Tool: テスト内の MQTT 拡張ごとに MQTT プロパティを設定しなくても良いように、異なるMQTT プロパティを設定する単純なツールです。
変数の使用
Load Test で MQTT 拡張を実行する場合、入力フィールドで使用できる変数は test_suite_loc
だけであることに注意してください。Load Test は、Parasoft Marketplace 拡張用に .tst プロジェクトで使用される project_loc
および workspace_loc
変数をサポートしていません。test_suite_loc
変数を使用すると、.tst プロジェクト ファイルからの相対パスとして外部ファイル パスを指定できます。
インストール
MQTT Extensions は UI またはコマンドラインからインストールできます。インストールを開始する前に、圧縮ファイルをダウンロードして適切な場所に解凍してください。
UI からのインストール
- [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
- [JAR の追加] をクリックし、mqtt.jar ファイルを選択します。
- [適用] をクリックします。
- SOAtest/Virtualize を再起動します。
コマンドラインからのインストール
設定プロパティ ファイルの system.properties.classpath プロパティに mqtt.jar ファイルを追加します。例:
system.properties.classpath=<PATH_TO_JAR>/mqtt.jar
MQTT Transport
- テストに Messaging Client を追加し、[トランスポート] に [カスタム拡張] を選択します。
- [実装] メニューから [MQTT] を選択します。
設定
以下の設定を行うことができます。
Connection 設定
[Connection] タブでは接続の設定を行います。
Broker URL | MQTT ブローカーの URL を定義します。URL の書式は
このフィールドは必須です。 定義したプロトコルが |
---|---|
Client ID | ブローカーに接続するときに使用するクライアント ID を定義します。空白にした場合、MQTT ブローカーがクライアント ID を生成します。 |
Username | ブローカーに接続するときに使用するユーザー名を定義します。 |
Password | ブローカーに接続するときに使用するパスワードを定義します。 |
Connection Timeout | MQTT ブローカーへの接続の確立を待機するタイムアウト時間を指定します。単位は秒です。デフォルト値は |
Keep Alive Interval | アイドル状態の MQTT クライアントを切断する間隔の最大時間を定義します。デフォルト値は |
Clean Session | クリーン セッションを有効化/無効化します。
デフォルトは |
Client Persistence Directory | クライアント パーシスタンス ファイルを格納するディレクトリを定義します。[Clean Session] を デフォルト: |
Publish 設定
[Publish] タブではパブリッシュの設定を行います。
Topic | メッセージをパブリッシュするトピックを定義します。 |
---|---|
Quality of Service | パブリッシュしたメッセージに紐付けるサービス メトリクスの品質を定義します。 設定できる値は、 |
Retain Message on Server | サーバー上にメッセージを保持するかどうかを指定します。メッセージを保持するには 保持したメッセージは、[Clean Session] の設定に関係なく、サブスクリプション時にクライアントに渡されます。デフォルトは |
Last Will and Testament (LWT) 設定
Last Will and Testament (LWT) は、クライアントがブローカーに接続するときに定義されます。クリーンな切断以外に何らかの理由でクライアントとブローカーの接続が失われた場合、ブローカーはクライアントの LWT を自動的にパブリッシュします。
Topic | LWT をパブリッシュするトピックを定義します。 |
---|---|
Will Payload | LWT のペイロードを定義します。 デフォルトは |
Quality of Service | LWT に紐付けるサービス メトリクスの品質を定義します。設定できる値は、 |
Retain Message on Server | サーバー上に LWT を保持するかどうかを指定します。LWT を保持するには true に設定します。 保持したメッセージは、[Clean Session] の設定に関係なく、サブスクリプション時にクライアントに渡されます。デフォルトは |
Transport Layer Security (TLS) 設定
[Broker URL
] フィールドでプロトコルを ssl または wss
に設定した場合、セキュアな接続を適切に確立できるよう、TLS を設定する必要があります。
TLS Protocol | セキュアな接続を確立するために使用する トランスポート層プロトコルを定義します。デフォルトは TLSv1.2 です。 |
---|---|
Key Manager Factory | キー マネージャ ファクトリを定義します。キーマネージャ ファクトリを使って、[キー ストア ファイル] が提供する鍵を管理します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるキー マネージャーを処理できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるファクトリ名を確認してください。 デフォルトは SunX509 です。 |
Key Store File Location | アセット (.tst、.pva、.pvn) の [キーストア ファイル] への絶対パスまたは相対パスを定義します。 |
Key Store Type | [キー ストア ファイル] の種類を定義します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるキーストア タイプを処理できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるキーストア タイプ名を確認してください。 |
Key Store Password | [キー ストア ファイル] からキー/証明書を抽出するために使用するパスワードを定義します。空白にした場合、パスワードなしでキーの抽出を試みます。 |
Trust Manager Factory | トラスト マネージャー ファクトリを定義します。トラスト マネージャー ファクトリを使用して、[トラスト ストア ファイル] が提供するキーを管理します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるトラスト マネージャーを利用できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるファクトリ名を確認してください。 デフォルトは SunX509 です。 |
Trust Store File Location | アセット (.tst、.pva、.pvn) の [トラスト ストア ファイル]への絶対パスまたは相対パスを定義します。デフォルトは |
Trust Store Type | [トラスト ストア ファイル] の種類を定義します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるトラスト ストア タイプを処理できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるトラスト ストア タイプ名を確認してください。 |
Trust Store Password | [トラスト ストア ファイル] からキー/証明書を抽出するために使用するパスワードを定義します。空白にした場合、パスワードなしでキーの抽出を試みます。 |
接続の管理設定
[接続の管理] タブでは、接続管理の設定を行います。
接続をキープ アライブ | クライアント接続を持続して今後のパブリッシュで再利用するには、このオプションを有効化します。 |
---|---|
テスト実行後に接続をクローズする | パブリッシュの直後にクライアント接続を切断するには、このオプションを有効化します。 |
MQTT Subscriber
MQTT Subscriber は、指定の持続時間に達するまで、メッセージの最大数に達するまで、または接続が終了するまで、トピックをリッスンします。メッセージの最大数がゼロ (無制限) の場合、MQTT Subscriber はサブスクリプションの最大持続時間までリッスンを試みます。
設定
以下の設定を行うことができます。
Connection 設定
このページの設定方法については「Connection 設定」を参照してください。
Subscribe 設定
[Subscribe] タブでサブスクライブ設定を行います。
Topic Filter | サブスクリプションを確立するときに使用する Topic フィルターを定義します。特別なワイルドカード
たとえば
このフィールドは必須です。 |
---|---|
Quality of Service | サブスクリプションのサービス品質 (QoS) レベルを定義します。低い QoS でパブリッシュされたメッセージは、パブリッシュされた QoS で受信されます。高い QoS でパブリッシュされたメッセージは、この設定で指定した QoS を使って受信されます。デフォルト値は |
Max Messages | サブスクリプションを終了する前に待機するメッセージの最大数を定義します。デフォルト値は |
Subscription Duration. | [Max Messages] を |
Timestamp Format | 到着するメッセージを使って生成されるタイムスタンプの書式を定義します。デフォルトは カスタム書式のタイムスタンプを定義したい場合は、SimpleDateFormat Javadocs を参照してください。http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html |
Last Will and Testament (LWT) 設定
この設定の詳細については「Last Will and Testament (LWT) 設定」を参照してください。
Transport Layer Security (TLS) 設定
この設定の詳細については「Transport Layer Security (TLS) 設定」を参照してください。
MQTT Message Listener
MQTT Message Listener を使用するには、Virtualize サーバーに Parasoft 仮想アセット (PVA) を追加し、[仮想アセットのデプロイ設定] の [カスタム] タブで [実装の選択] に [MQTT Message Listener] を選択し、MQTT の設定を行います。
設定
以下の設定を行うことができます。
Connection 設定
このページの設定方法については「Connection 設定」を参照してください。
Subscribe 設定
Topic Filter | このフィールドの設定方法については「Topic Filter」を参照してください。 このフィールドは必須です。 |
---|---|
Quality of Service | このフィールドの設定方法については「Quality of Service」を参照してください。デフォルトは 1 です。 |
Publish 設定
このページの設定方法については「Publish 設定」を参照してください。
Last Will and Testament (LWT) 設定
この設定の詳細については「Last Will and Testament (LWT) 設定」を参照してください。
Transport Layer Security (TLS) 設定
この設定の詳細については「Transport Layer Security (TLS) 設定」を参照してください。
MQTT Event Monitor
MQTT Event Monitor は、Topic フィルターをサブスクライブし、テスト実行中にメッセージの到着をモニタリングするために使用されます。この機能は、到着するメッセージの検証を可能にします。検証には、メッセージが到着する順序、メッセージの到着時刻、メッセージがパブリッシュされたトピック、およびメッセージ ペイロードが含まれます。
MQTT Event Monitor のセットアップ
- テストにイベント モニターを追加します。
- [イベント ソース] タブで、[プラットフォーム] メニューから [カスタム/API ベースのイベント ソース] を選択します。
- [イベントの取得] セクションで、[パターン] メニューから [イベント プロデューサーのサブスクライブ] を選択します。
- [ユーザー コード] セクションで、[言語] メニューから [Java] を選択します。
- [ユーザー コード] セクションの [クラス] フィールドに com.parasoft.soavirt.mqtt.event.MqttEventMonitor と入力します。
- [ユーザー コード] セクションの [メソッド] メニューから getEventSubscriber(String, String, String, Context) を選択します。
以下の設定を行うことができます。
URL | ブローカー URL を定義します。MQTT Event Monitor のブローカー URL の定義方法は他のツールと異なります。 以下の書式を使ってブローカー URL を設定します:
このフィールドは必須です。 SSL プロトコルを指定した場合、クライアントの Transport Layer Security (TLS) を設定するために MQTT Configure Toolを使用する必要があります。
Topic フィルターを定義するために URLでワイルドカードを使用することはできません。使用した場合、URL は適切にパースされません。Topic フィルターでワイルドカードを使用するには、URL 宣言から Topic フィルターを削除し、MQTT Configure Tool を使って Topic フィルターを定義してください。 MQTT Configure Tool を使って、メッセージ到着時のイベントのタイムスタンプをカスタム書式で定義できます。 |
---|---|
ユーザー名 | ブローカーに接続するときに使用するユーザー名を定義します。 |
Password | ブローカーに接続するときに使用するパスワードを定義します。 |
MQTT Configure Tool
MQTT Configure Tool を使用すると、テスト全体について特定の MQTT プロパティを設定できます。そのため、同じプロパティを必要とする場合に、個々のテスト ステップの設定に要する時間と労力を削減できます。MQTT Configure Tool で定義した設定は、個々のテスト ステップで上書きできます。Event Monitor Tool には TLS プロパティを設定する方法が存在しないため、MQTT Configure Tool は Event Monitoring インターフェイスを使用する場合に特に有用です。ベスト プラクティスとして、MQTT Configure Tool はセットアップ テストとしてのみ使用するべきです。
設定
以下の設定を行うことができます。
Connection 設定
Connection Timeout | このフィールドの設定方法については「Connection Timeout」を参照してください。 |
---|---|
Keep Alive Interval | このフィールドの設定方法については「Keep Alive Interval」を参照してください。 |
Clean Session | このフィールドの設定方法については「Clean Session」を参照してください。 |
Client Persistence Directory | このフィールドの設定方法については「Client Persistence Directory」を参照してください。 |
Subscribe 設定
このページの設定は、Event Monitor Tool を使用する場合にのみ行ってください。Subscribe 設定ページでは、Topic フィルターにワイルドカードを使用して、QoS レベルおよびメッセージ到着時のタイムスタンプの書式をカスタマイズできます。
Topic Filter | このフィールドの設定方法については「Topic Filter」を参照してください。 |
---|---|
Quality of Service | このフィールドの設定方法については「Quality of Service」を参照してください。 |
Timestamp Format | このフィールドの設定方法については「Timestamp Format」を参照してください。 |
Last Will and Testament (LWT) 設定
この設定の詳細については「Last Will and Testament (LWT) 設定」を参照してください。
Transport Layer Security (TLS) 設定
この設定の詳細については「Transport Layer Security (TLS) 設定」を参照してください。
負荷テストで MQTT Configure Tool をセットアップ テストとして実行する
負荷テストで MQTT Configure Tool をセットアップ テストとして使用する .tst を実行したい場合、仮想ユーザーのコンテキストで MQTT Configure Tool を実行する必要があります。
- [Load Test コンフィギュレーション] の [プロファイル] ノードをクリックします。
- [Project Configuration] パネルの [セットアップ/ティアダウン オプション] タブをクリックし、[仮想ユーザーごとに1回実行] を有効化します。
サード パーティのコンテンツ
この拡張機能は、以下のサード パーティのコンテンツを含みます。
- Eclipse Paho (EPL 1.0)
- SLF4J (MIT License)
その他のライセンスの詳細については、Parasoft MQTT Extensions の licenses フォルダーを参照してください。