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
<dependency>
  <groupId>es.iti.wakamiti</groupId>
  <artifactId>amqp-wakamiti-plugin</artifactId>
  <version>2.8.0</version>
</dependency>

Configuración

amqp.connection.url

  • Tipo: string obligatorio

Establece la URL que utilizará el agente AMQP.

Ejemplo:

amqp:
  connection:
    url: amqp://127.0.0.1:5671

amqp.connection.username

  • Tipo: string obligatorio

Establece el nombre de usuario que utilizará el agente AMQP.

Ejemplo:

amqp:
  connection:
    username: guest

amqp.connection.password

  • Tipo: string obligatorio

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}

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}

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}

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}

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}

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}

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 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}

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}

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 segundos

Validar ausencia de mensajes

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, *

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