このセクションの内容:
概要
MQTT Extensions は、Parasoft SOAtest および Parasoft Virtualize のカスタム拡張です。MQTT Extensions をクライアント側(SOAtest)で使用して様々なタスクを実行できます。
- Topic にパブリッシュする
- 目的の数のメッセージを受け取るまで、あるいは指定の持続時間を過ぎるまで、Topic フィルターをサブスクライブする
- テスト実行中に Topic フィルターをモニタリングし、発生したイベントを検証する
サーバー側(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 プロパティを設定する単純なツールです。
インストール
MQTT Extensions は UI またはコマンドラインからインストールできます。インストールを開始する前に、圧縮ファイルをダウンロードして適切な場所に解凍してください。
UI からのインストール
- [Parasoft] > [設定] をクリックし、サイドバー メニューの [システム プロパティ] を選択します。
- [JAR の追加] をクリックし、mqtt.jar ファイルを選択します。
- SOAtest/Virtualize を再起動します。
コマンドラインからのインストール
localsettings プロパティ ファイルの 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 の書式は protocol://host:port です。
このフィールドは必須です。 定義したプロトコルが ssl または wss の場合、[Transport Layer Security (TLS)] ページの設定も行う必要があります。 |
---|---|
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 | セキュアな接続を確立するために使用する トランスポート層プロトコルを定義します。 デフォルト: |
---|---|
Key Manager Factory | キー マネージャ ファクトリを定義します。キーマネージャ ファクトリを使って、[キー ストア ファイル] が提供する鍵を管理します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるキー マネージャーを処理できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるファクトリ名を確認してください。 デフォルト: |
Key Store File Location | アセット (.tst、.pva、.pvn) の [キーストア ファイル] への絶対パスまたは相対パスを定義します。 |
Key Store Type | [キー ストア ファイル] の種類を定義します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるキーストア タイプを処理できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるキーストア タイプ名を確認してください。 |
Key Store Password | [キー ストア ファイル] からキー/証明書を抽出するために使用するパスワードを定義します。 空白にした場合、パスワードなしでキーの抽出を試みます。 |
Trust Manager Factory | トラスト マネージャー ファクトリを定義します。トラスト マネージャー ファクトリを使用して、[トラスト ストア ファイル] が提供するキーを管理します。JVM にロードされるセキュリティ プロバイダーに合わせて、異なるトラスト マネージャーを利用できます。JVM にセキュリティ プロバイダーを追加した場合は、そのセキュリティ プロバイダーのドキュメントを参照し、利用できるファクトリ名を確認してください。 デフォルト: |
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 フィルターを定義します。特別なワイルドカード たとえば parasoft/example/topic および parasoft/example/soavirt/topic の場合: parasoft/+/topic は、parasoft/example/topic をフィルタリングします。 parasoft/#/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」を参照してください。 |
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 を設定します: protocol://client_id@host:port/topic_filter
このフィールドは必須です。 SSL プロトコルを指定した場合、クライアントの Transport Layer Security (TLS) を設定するために MQTT Configure Toolを使用する必要があります。 client_id を指定しない場合、サーバーがクライント ID を生成します。 Topic フィルターを定義するために URLでワイルドカードを使用することはできません。使用した場合、URL は適切にパースされません。Topic フィルターでワイルドカードを使用するには、URL 宣言から Topic フィルターを削除し、MQTT Configure Tool を使って Topic フィルターを定義してください。 MQTT Configure Tool を使って、メッセージ到着時のイベントのタイムスタンプをカスタム書式で定義できます。 |
---|---|
ユーザー名 | ブローカーに接続するときに使用するユーザー名を定義します。 |
パスワード | ブローカーに接続するときに使用するパスワードを定義します。 |
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回実行] オプションを有効化します。
サード パーティのコンテンツ
Parasoft Burp Suite Extensions は、以下のサード パーティのコンテンツを含みます。
- Eclipse Paho (EPL 1.0)
- SLF4J (MIT License)
その他のライセンスの詳細については、Parasoft MQTT Extensions の licenses フォルダーを参照してください。