Drop MQTT Connection Test Step

Applies to ReadyAPI 3.56, last modified on October 29, 2024

About Drop MQTT Connection test step

Use this test step to simulate a planned or unexpected disconnection from the MQTT broker to test scenarios, in which dropped connections are a factor.

Editing Drop MQTT Connection test step

You can modify test step settings in its editor:

MQTT Testing: Simulating connection breaks

Connection to MQTT server

Connection

Choose a configured connection to the broker from the drop-down list, or select <New Connection...> to create a new connection. Click the Configure button to customize properties of the selected connection in the Configure Connection dialog.

Settings

Drop method

Choose how ReadyAPI simulates a disconnection:

Option Description
Send Disconnect message to MQTT server ReadyAPI will send the DISCONNECT packet to the MQTT broker and then close the network connection. The MQTT broker will not send the Will message.
Close network connection ReadyAPI will not send the DISCONNECT packet, it will only close the network connection. This behavior simulates network- or client-related problems. In this case, the MQTT broker will publish the Will message once the connection is closed.

Configure connection dialog

Use the Configure Connection dialog to configure connections used by the test step. You use the same dialog to create a new connection or to update the connection from a legacy version.

The General tab

MQTT Testing in ReadyAPI: Configure connection dialog
The connection may be used in any test case in the project, so only project-level property expansions will work correctly for connection settings.

Name

The unique name used to identify a connection.

Server URL

The MQTT server's URL.

The URL should contain tcp:// when connecting to a TCP socket or ssl:// when connecting to an SSL socket.

The URL may also contain a port number. If the port is not specified, ReadyAPI will use port 1883 for TCP URLs, and 8883 for SSL URLs.

Client ID

The client identifier is used by the server to identify a client. It must be unique across all clients connecting to the same server. This field is optional. If it is empty, a unique client identifier will be generated for every test case run.

Clean Session

Select this check box to create a new connection each time you run the test. If this check box is clear, ReadyAPI and the tested MQTT server will store the session state to enable reliable messaging across several connections. For example, if the connection is lost during the test case run, the Receive MQTT Message test step will still catch messages if it can reconnect.

Authentication

MQTT Testing in ReadyAPI: SSL Properties

Enable the check box if the MQTT server requires authentication.

Login

The user name for connecting to the MQTT server.

Password

The user password for connecting to the MQTT server.

Will message

MQTT Testing in ReadyAPI: SSL Properties

If you enable storing Will messages on the MQTT server, this message will be send to listeners if the "publisher" client disconnects from the server without sending the Disconnect message.

Topic

Enter the message topic. Only clients subscribed to this topic will receive a message published by this test step.

Message type

Select the message encoding. Available values include --

  • JSON
  • XML
  • Text (UTF-16)
  • Text (UTF-8)
  • Content of file
  • Integer
  • Long (8 bytes)
  • Float
  • Double

Notes:

  • If the JSON or XML message type is selected, the messages are sent as UTF-8 text.

  • Numeric messages are always sent as binary data.

Message

The contents of the message.

Quality of Service

Choose the Quality of Service you want to use when delivering the message. Available values:

Value Description
At most once (0) The sender does not check whether the message was received.
At least once (1) The sender makes sure that the message was received at least once, but does not check whether it was delivered more than once.
Exactly once (2) The sender makes sure that the message was received only once.

Retained

If selected, the Will message will be a retained message: it will be stored on the broker and sent to all new clients subscribing to the topic.

SSL properties

MQTT Testing in ReadyAPI: SSL Properties

CA certificate

Specifies a fully-qualified path to the certificate of the certificate authority (CA) that signed the server certificate.

Client certificate

Specifies a fully-qualified path to a certificate that will be used to sign messages.

Key file

Specifies a fully-qualified path to the client’s private key.

Key password

The password from the specified key file.

SSL server name

The server to which you want to connect. Typically, it is the same as Server URL.

Note: You can connect by specifying the CA certificate without filling in the other parameters.

Property list

Besides the test step editor, you can adjust the test step’s behavior by using its properties in the Properties and Custom Drop MQTT Connection Test Step Properties panels in the Navigator.

Name Description
Name

The test step’s name.

Description

Text describing the test step.

Values on the Custom Drop MQTT Connection Test Step Properties tab are available to other test steps in your project. For instance, you can verify these property values with the Assertion test step, or check them and change the execution flow with the Conditional GoTo test step.

You can load values of custom properties from a file, or save them to a file. To learn more, see About Properties.

This tab contains the following properties that provide access to the request and response data:

Name Description
CertCAPEM

Specifies the fully-qualified path to the certificate authority (CA) certificate that was used to sign the server certificate.

Note: Corresponds to the CA certificate option specified on the SSL Settings tab of the connection settings.
ServerURI

Specifies the MQTT server’s URL with the used protocols.

Note: Corresponds to the ServerURL option specified on the General tab of the connection settings.
CertKeyPEM

Specifies the fully-qualified path to the client key file.

Note: Corresponds to the Key file option specified on the SSL Settings tab of the connection settings.
ClientID

The client identifier is used by the server to identify a client.

Note: Corresponds to the ClientID option specified on the General page of the connection settings.
CertClientPEM

Specifies the fully-qualified path to the client’s certificate that will be used to sign messages.

Note: Corresponds to the CA certificate option specified on the SSL Settings tab of the connection settings.
CertSniServer

Specifies the host name of the server, to which you want to connect.

Note: Corresponds to the Server host name option specified on the SSL Settings tab of the connection settings.
Login

The user name for connecting to the MQTT server.

Note: Corresponds to the Login option specified on the Authentication page of the connection settings.
CertKeyPassword

Specifies the password for the client’s private key file.

Note: Corresponds to the Key password option specified on the SSL Settings tab of the connection settings.
Password

The user password for connecting to the MQTT server.

Note: Corresponds to the Password option specified on the Authentication page of the connection settings.

Logging

If the test step is run as part of a test case, you can see the test log in the Transaction Log panel.

See Also

About IoT MQTT Testing
MQTT Testing Tutorial
Publish Using MQTT Test Step
Receive MQTT Message Test Step
Test Steps

Highlight search results