Exam >
On this page

mq-send

Sends message to specified queue

Overview

Usage

1. Configure a map of queue aliases to MqTester implementations via MqPlugin.

2. Use e:mq-send tag in specification:

src/test/resources/specs/Specs.html
<e:mq-send name="someQueue">
    { "some": "message"}
</e:mq-send>

Attributes

attributedescexample
name Key from the map of a queue aliases to MqTester implementations configured in MqPlugin. Required. Default: -
name="myQueue"
from Use content of the specified file as a value instead of the tag body (empty tag can be used) Optional. Default: -
from="/data/file.json"
vars Comma-separated list of name=value pairs to set as variables Optional. Default: -
vars="var1=1, var2={{now}}, var3=' preserved spaces string '"
varsSeparator name=value pairs separator to use in vars attribute Optional. Default: ,
varsSeparator="|"
headers Comma-separated name=value list of headers to pass to the MqTester.send method. Specific implementation of the MqTester may use this list as the message headers. Optional. Default: empty
headers="type=String, contentEncoding=UTF-8"
params Comma-separated name=value list of parameters to pass to the MqTester.send method. Specific implementation of the MqTester may use this list to fine-tune sending. Optional. Default: empty
params="param1=1, param2=2"
formatAs Format to use for pretty-print message in report. Supported values: json, xml. Optional. Default: json
formatAs="xml"
collapsable Render message in report as a collapsable block. Optional. Default: false
collapsable="true"

Examples

Specifying message

Message could be specified in the tag body:

Log File
Message in tag body

Given


myQueue purged

When


The following markup:
<e:mq-send name="myQueue">{"date" : "{{now 'yyyy-MM-dd'}}"}</e:mq-send>
will be rendered as:
myQueue
{ "date": "2022-03-12" }

Then


myQueue
{ "date": "2022-03-12" }

Or in the file:

Log File
Message in file

Given


myQueue purged

When


The following markup:
<e:mq-send name="myQueue" from="/specs/mq/data/message.json"/>
will be rendered as:
myQueue
{ "date": "2022-03-12" }

Then


Queue has the message:
myQueue
{ "date": "2022-03-12" }

Specified message value basically is a Handlebar template hence context variables and handlebars helpers may be used to resolve the final message.

The vars attribute could be used to conveniently provide context variables for message template.

Log File
Message templates

Given


myQueue purged

When


The following markup:
<e:mq-send name="myQueue" from="/data/mq/msg.json" vars="myVar1={{now 'yyyy-MM-dd'}} | myVar2={{date myVar1 minus='1 d'}} | myVar3=str with commas , signs" varsSeparator="|"/>
will be rendered as:
myQueue
{ "date": "2022-03-12", "var1": "2022-03-12", "var2": "Fri Mar 11 00:00:00 MSK 2022", "var3": "str with commas , signs" }

Then


Queue has the message:
myQueue
{ "date": "2022-03-12", "var1": "2022-03-12", "var2": "Fri Mar 11 00:00:00 MSK 2022", "var3": "str with commas , signs" }

Specifying message headers

The headers attribute could be used to pass desired message headers to the MqTester implementation. Propagating this headers to the actual message is the MqTester implementation responsibility.

Log File
Message headers

Given


myQueue purged

When


The following markup:
<e:mq-send name="myQueue" headers="id={{id}}, contentEncoding=UTF-8">{}</e:mq-send>
will be rendered as:
myQueue
Headers
idsome-id
contentEncodingUTF-8
{}

Then


Queue has the message with headers:
myQueue
Headers
contentEncodingUTF-8
idsome-id
{}

Pretty-printing

Collapsable view

Big messages may be collapsed in report via the collapsable attribute.

Log File
collapsable messages

Given


myQueue purged

Then


The following markup:
<e:mq-send name="myQueue" from="/data/mq/big.json" collapsable="true"/>
will be rendered as:
myQueue
[{ "index": 0, "isActive": false, "age": 28, "name": "LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLong" }, { "index": 1, "isActive": true, "age": 29, "name": "Kasey Burris" }, { "index": 2, "isActive": false, "age": 40, "name": "Antoinette Morse" }, { "index": 3, "isActive": true, "age": 32, "name": "Lilia Ramirez" }, { "index": 4, "isActive": true, "age": 35, "name": "Lily Joyner" }, { "index": 5, "isActive": false, "age": 22, "name": "Ronda Norton" }, { "index": 6, "isActive": false, "age": 31, "name": "Tiffany Davidson" }, { "index": 7, "isActive": false, "age": 40, "name": "Allie Wise" }, { "index": 8, "isActive": true, "age": 40, "name": "Giles Lopez" }, { "index": 9, "isActive": false, "age": 25, "name": "Ramsey Cain" }]
myQueue
[{ "index": 0, "isActive": false, "age": 28, "name": "LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLong" }, { "index": 1, "isActive": true, "age": 29, "name": "Kasey Burris" }, { "index": 2, "isActive": false, "age": 40, "name": "Antoinette Morse" }, { "index": 3, "isActive": true, "age": 32, "name": "Lilia Ramirez" }, { "index": 4, "isActive": true, "age": 35, "name": "Lily Joyner" }, { "index": 5, "isActive": false, "age": 22, "name": "Ronda Norton" }, { "index": 6, "isActive": false, "age": 31, "name": "Tiffany Davidson" }, { "index": 7, "isActive": false, "age": 40, "name": "Allie Wise" }, { "index": 8, "isActive": true, "age": 40, "name": "Giles Lopez" }, { "index": 9, "isActive": false, "age": 25, "name": "Ramsey Cain" }]

Highlighting

To hint report about the message format the formatAs attribute can be used. Supported values: xml, json (default).

pretty print messages

Given


myQueue purged

When


The following markup:
<e:mq-send name="myQueue" from="/data/mq/some.xml" formatAs="xml"/>
will be rendered as:
myQueue
<data> <date>2022-03-12</date> </data>

When


The following markup:
<e:mq-send name="myQueue" from="/data/mq/some.txt"/>
will be rendered as:
myQueue
date 2022-03-12