The MQTT Extensions are custom extensions for Parasoft SOAtest and Virtualize. You can use the extensions on the client side to perform many tasks:
On the server side, you can use the listener extension to subscribe to a topic filter then publish to a topic based on the incoming subscription messages.
The following custom extensions are provided for MQTT integration:
If you intend to run the MQTT extensions in Load Test, note that the test_suite_loc
variable is the only variable that can be used in input fields. Load Test does not support the project_loc
and workspace_loc
variables for Parasoft Marketplace extensions used in .tst projects. The test_suite_loc
variable enables you to specify an external file path relative to the location of the .tst project file.
This tool can be installed from the UI or command line. Download and unzip the compressed folder in a convenient location prior to starting the installation process.
Add the mqtt.jar file to the system.properties.classpath
property in your local settings properties file. For example:
system.properties.classpath=<PATH_TO_JAR>/mqtt.jar
You can configure the following settings.
Click the Connection tab to configure the connection settings.
Broker URL | Defines the URL of the MQTT broker in the following format:
This field is required. If the defined protocol is |
---|---|
Client ID | Defines the client ID to use when connecting to the broker. If left blank, the client ID will be generated by the MQTT broker. |
Username | Defines the username to use when connecting to the broker. |
Password | Defines the password to use when connecting to the broker. |
Connection Timeout | Defines the maximum seconds allowed to establish a connection to the MQTT broker. The default is |
Keep Alive Interval | Defines the maximum interval before disconnecting an idle MQTT client. The default is |
Clean Session | Enables/disables clean sessions.
The default is |
Client Persistence Directory | Defines a directory to store client persistence files. Client persistence is useful if Clean Session is set to The default is |
Click the Publish tab to configure the publish settings:
Topic | Defines to which topic to publish the message. |
---|---|
Quality of Service | Defines the quality-of-service metric that's tied to the published message. Possible values are |
Retain Message on Server | Enables/disables retaining the message on the server. Setting to Retained messages are solicited to clients upon subscription to a topic regardless of their Clean Session settings. The default is |
The Last Will and Testament (LWT) is defined when a client connects to a broker. If the client loses connection from the broker for any reason other than a clean disconnect, then the broker will publish the clients LWT automatically.
Topic | Defines to which topic to publish the LWT. |
---|---|
Will Payload | Defines the payload of the LWT. The default is |
Quality of Service | Defines the quality-of-service metric that's tied to the LWT. Possible values are |
Retain Message on Server | Enables/disables retaining the LWT on the server. Setting to true retains the LWT. Retained messages are solicited to clients upon subscription to a topic regardless of their Clean Session settings. The default is |
The TLS settings must be configured when the protocol is set to ssl
or wss
in the Broker URL field so that secure connections can be established properly.
TLS Protocol | Defines the Transport Layer Protocol to use when establishing a secure connection. The default is |
---|---|
Key Manager Factory | Defines the Key Manager Factory used to manage the keys provided in the Key Store File. Different Key Managers are available depending on the security providers that have been loaded into the JVM. If additional security providers have been added to the JVM, check the security provider's documentation to gather the available factory names. The default is |
Key Store File Location | Defines an absolute or relative path to the asset (.tst, .pva, .pvn) key store file. |
Key Store Type | Defines the type of Key Store File provided. Different Key Store Types can be handled depending on the security providers that have been loaded into the JVM. If additional security providers have been added to the JVM, check the security provider's documentation to gather the available Key Store Type names. |
Key Store Password | Defines the password to be used to extract the keys/certificates from the Key Store File. If left blank, an attempt will be made to extract the keys without a password. |
Trust Manager Factory | Defines the Trust Manager Factory used to manage the keys provided in the Trust Store File. Different Trust Managers are available depending on the security providers that have been loaded into the JVM. If additional security providers have been added to the JVM, check the security provider's documentation to gather the available factory names. The default is |
Trust Store File Location | Defines an absolute or relative path to the asset (.tst, .pva, .pvn) Trust Store file. The default is |
Trust Store Type | Defines the type of Trust Store File provided. Different Trust Store Types can be handled depending on the security providers that have been loaded into the JVM. If additional security providers have been added to the JVM, check the security provider's documentation to gather the available Trust Store Type names. |
Trust Store Password | Defines the password to be used to extract the keys/certificates from the Trust Store File. If left blank, an attempt will be made to extract the keys without a password. |
Click the Connection Management tab to configure the connection management settings.
Keep connection alive | Enable this option to keep the client connection alive and reused for subsequent publishing. |
---|---|
Close connection after test execution | Enable this option to close the client connection directly after publishing. |
The MQTT Subscriber listens on the topic until the specified duration is reached, the maximum number of messages is reached, or the connection is terminated. If the maximum number of messages is zero (unlimited) then the Subscriber will attempt to listen for the full subscription duration.
You can configure the following settings.
See Connection Settings for details on how to configure this page.
Click the Subscribe tab to configure the subscribe settings.
Topic Filter | Defines the topic filter to use when establishing a subscription. You can use the special wildcards The Example: For the topics
This field is required. |
---|---|
Quality of Service | Defines the quality of service (QoS) level of the subscription. Messages published at a lower QoS will be received at the published QoS. Messages published at a higher QoS will be received using the QoS specified in this setting. The default is |
Max Messages | Defines the maximum number of messages to wait for before ending the subscription. The default is |
Subscription Duration. | Defines the maximum number of milliseconds that a topic filter can be subscribed to when the Max Messages is set to |
Timestamp Format | Defines the formatting of the timestamps that are generated with each message that arrives. The default is To define custom timestamp formats please see the SimpleDateFormat Javadocs: http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html |
See Last Will and Testament (LWT) Settings for details on how to configure these settings.
See Transport Layer Security (TLS) for details on how to configure these settings.
To use this message listener, add a Parasoft Virtual Asset (PVA) to a Virtualize server and configure the MQTT settings in the custom tab of the Virtual Asset Deployment Settings.
You can configure the following settings.
See Connection Settings for details on how to configure this page.
Topic Filter | See Topic Filter for a description of how to configure this field. This field is required. |
---|---|
Quality of Service | See Quality of Service for a description on how to configure this field. The default is 1. |
See Publish Settings for details on how to configure this page.
See Last Will and Testament (LWT) Settings for details on how to configure this page.
See Transport Layer Security (TLS) Settings for details on how to configure this page.
The event monitor is used to subscribe to a topic filter and monitor the message arrivals during the test execution. This allows for validations to be performed on the messages that arrive. Validations include the order in which messages arrive, the time of message arrival, the topic in which the messages were published, and the message payload.
You can configure the following settings.
URL | Defines the broker URL. The broker URL is defined differently in the Event Monitor than in the other tooling. Use the following pattern to configure the broker URL:
This field is required. If the SSL protocol is defined, the MQTT Configure Tool must be used to configure the Transport Layer Security (TLS) settings for the client. If You cannot use wildcards in the URL to define the topic filter or else the URL will not parse properly. To use wildcards in your topic filter, omit the topic filter from the URL declaration and define the topic filter using the MQTT Configure Tool. You can define a custom timestamp format of the message arrival events with the MQTT Configure Tool. |
---|---|
Username | Defines the username to use when connecting to the broker. |
Password | Defines the password to use when connecting to the broker. |
The configure tool enables you to configure certain MQTT properties for an entire test, reducing the amount of configuration required in the individual test steps if the same properties are required. Any settings defined in the configure tool can be overridden by the individual test steps. The configure tool is especially useful when using the Event Monitoring interface because there is no way to configure TLS properties in the Event Monitor tool. As a best practice, this tool should only be used as a Set-Up test.
You can configure the following settings.
Connection Timeout | See Connection Timeout for a description of how to configure this field. |
---|---|
Keep Alive Interval | See Keep Alive Interval for a description on how to configure this field. |
Clean Session | See Clean Session for a description on how to configure this field. |
Client Persistence Directory | See Client Persistence Directory for a description on how to configure this field. |
This page should only be configured when using the Event Monitor Tool. This page allows you to use wildcards in the topic filter and allows you to customize Quality of Services levels and message arrival timestamp formats.
Topic Filter | See Topic Filter for a description of how to configure this field. |
---|---|
Quality of Service | See Quality of Service for a description on how to configure this field. |
Timestamp Format | See Timestamp Format for a description on how to configure this field. |
See Last Will and Testament (LWT) Settings for details on how to configure this page.
See Transport Layer Security (TLS) Settings for details on how to configure this page.
If you want to run a load test with a .tst that uses MQTT Configure tools as Set-Up tests, you must run the tools in the virtual user context.
This extension includes items that have been sourced from third parties as outlined below.
Additional license details are available in this plug-in's licenses folder.