Pasos AMQP
Este plugin proporciona una serie de pasos para interactuar con brokers AMQP vía Advanced Message Queuing Protocol. Admite conexiones AMQP 1.0 y AMQP 0.9.1, configuración de colas y persistencia de mensajes, además de pasos para enviar y validar mensajes JSON, purgar colas y comprobar que no se reciben mensajes.
Instalación
Incluye el módulo en la sección correspondiente.
es.iti.wakamiti:amqp-wakamiti-plugin:2.8.0
es.iti.wakamiti:amqp-wakamiti-plugin:2.8.0
<dependency> <groupId>es.iti.wakamiti</groupId> <artifactId>amqp-wakamiti-plugin</artifactId> <version>2.8.0</version> </dependency>
<dependency> <groupId>es.iti.wakamiti</groupId> <artifactId>amqp-wakamiti-plugin</artifactId> <version>2.8.0</version> </dependency>
Configuración
amqp.connection.url
- Tipo:
stringobligatorio
Establece la URL que utilizará el agente AMQP.
Ejemplo:
amqp: connection: url: amqp://127.0.0.1:5671
amqp.connection.username
- Tipo:
stringobligatorio
Establece el nombre de usuario que utilizará el agente AMQP.
Ejemplo:
amqp: connection: username: guest
amqp.connection.password
- Tipo:
stringobligatorio
Establece la contraseña de usuario que utilizará el agente AMQP.
Ejemplo:
amqp: connection: password: guest
amqp.connection.protocol
- Tipo:
string - Por defecto:
AMQP_1_0
Selecciona el protocolo AMQP que se utilizará. Se aceptan AMQP_1_0 y AMQP_0_9_1 (también alias como
amqp-1.0, amqp-0.9.1, 1_0, 0_9_1).
Ejemplo:
amqp: connection: protocol: AMQP_0_9_1
amqp.message.persistent
- Tipo:
boolean - Por defecto:
true
Establece si los mensajes se envían como persistentes.
Ejemplo:
amqp: message: persistent: "false"
amqp.queue.durable
- Tipo:
boolean - Por defecto:
false
Establece si la cola será duradera o no (la cola sobrevivirá a un reinicio del servidor).
Ejemplo:
amqp: queue: durable: "true"
amqp.queue.exclusive
- Tipo:
boolean - Por defecto:
false
Establece si la cola será exclusiva (restringida a la conexión actual).
Ejemplo:
amqp: queue: exclusive: "true"
amqp.queue.autodelete
- Tipo:
boolean - Por defecto:
false
Establece si la cola de eliminación automática (el servidor la eliminará cuando ya no esté en uso).
Ejemplo:
amqp: queue: autodelete: "true"
Pasos
Definir conexión
la conexión AMQP con URL {url} usando el usuario {username} y la contraseña {password}la conexión AMQP con URL {url} usando el usuario {username} y la contraseña {password}Establece la URL y las credenciales que utilizará el agente AMQP. Esta es la forma descriptiva de establecer las
propiedades amqp.connection.url, amqp.connection.username,
amqp.connection.password.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
url |
text obligatorio |
La URL del agente |
username |
text obligatorio |
Nombre de usuario |
password |
text obligatorio |
Contraseña de usuario |
Ejemplos:
Dada la conexión AMQP con URL 'amqp://127.0.0.1:5671' usando el usuario 'guest' y la contraseña 'guest'
Definir protocolo
el protocolo AMQP {protocol}el protocolo AMQP {protocol}Define el protocolo AMQP que se utilizará. Esta es la forma descriptiva de establecer la propiedad
amqp.connection.protocol.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
protocol |
word obligatorio |
Nombre del protocolo |
Ejemplos:
Dado el protocolo AMQP AMQP_0_9_1
Definir cola destino
la cola de destino {word}la cola de destino {word}Establece el nombre de la cola que se observará.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
word |
word obligatorio |
Nombre de la cola |
Ejemplos:
Dada la cola de destino TEST
Purgar cola
(que) se vacía la cola {word}(que) se vacía la cola {word}Purga todos los mensajes pendientes de la cola indicada.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
word |
word obligatorio |
Nombre de la cola |
Ejemplos:
Cuando se vacía la cola TEST
Enviar mensaje a cola
se envía a la cola {word} el siguiente mensaje JSON:
{data}se envía a la cola {word} el siguiente mensaje JSON:
{data}Envía un mensaje JSON a la cola indicada.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
word |
word obligatorio |
Nombre de la cola |
data |
document obligatorio |
Mensaje JSON |
Ejemplos:
Cuando se envía a la cola TEST el siguiente mensaje JSON:
"""json
{
"data": {
"message": "Test message sent"
}
}
"""Enviar mensaje a cola (fichero)
se envía a la cola {queue} el mensaje del fichero JSON {file}se envía a la cola {queue} el mensaje del fichero JSON {file}Envía el contenido de un fichero JSON a la cola indicada.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
file |
file obligatorio |
Fichero JSON |
queue |
word obligatorio |
Nombre de la cola |
Ejemplos:
Cuando se envía a la cola TEST el mensaje del fichero JSON 'data/message.json'Establecer pausa
se espera durante {duration}se espera durante {duration}Se produce una espera de una duración fija (generalmente para asegurarse de que se haya procesado el mensaje).
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
duration |
duration obligatorio | Cantidad de tiempo |
Ejemplos:
* se espera durante 2 segundos
Validar mensaje
el siguiente mensaje JSON se recibe en {duration}:
{data}el siguiente mensaje JSON se recibe en {duration}:
{data}Valida que se reciba un mensaje JSON específico en la cola observada, produciéndose un fallo después del tiempo de espera indicado.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
duration |
duration obligatorio | Cantidad de tiempo |
data |
document obligatorio |
Mensaje JSON |
Ejemplos:
Cuando el siguiente mensaje JSON se recibe en 5 segundos:
"""json
{
"data": {
"message": "Test message sent"
}
}
"""Validar mensaje (fichero)
el mensaje del fichero JSON {file} se recibe en {duration}el mensaje del fichero JSON {file} se recibe en {duration}Valida que se reciba el contenido de un fichero JSON específico en la cola observada, produciéndose un fallo después del tiempo de espera indicado.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
file |
file obligatorio |
Fichero JSON |
duration |
duration obligatorio | Cantidad de tiempo |
Ejemplos:
Cuando el mensaje del fichero JSON 'data/message.json' se recibe en 5 segundosValidar ausencia de mensajes
no se recibe ningún mensaje durante {duration}no se recibe ningún mensaje durante {duration}Valida que no se reciba ningún mensaje en la cola de destino durante el tiempo de espera.
Parámetros:
| Nombre | Wakamiti type | Descripción |
|---|---|---|
duration |
duration obligatorio | Cantidad de tiempo |
Ejemplos:
Entonces no se recibe ningún mensaje durante 10 segundos
Modos especiales
Algunos pasos pueden ejecutarse con un comportamiento diferente si se definen de las siguientes maneras:
Modo post-ejecución
Al finalizar, *
Al finalizar, *
El paso se ejecutará una vez finalice el escenario, independientemente del resultado de la ejecución.
Ejemplos:
* Al finalizar, se vacía la cola TEST