Marco de agente diseñado para probar aplicaciones ZeroMQ
Los tipos de agente corresponden al tipo de ZMQ Socket subyacente bajo prueba
Dentro de su proyecto, declare sus agentes dentro de config/zmq_agents.rb
de esta manera:
require 'agent_zmq'
AgentZMQ . define_ZMQ_SUB :my_sub_agent do | a |
a . socket_opts << { ZMQ :: SUBSCRIBE => 'com.connamara.BODPosition' }
a . end_point_type = :bind
a . end_point = 'tcp://*:5556'
end
AgentZMQ . define_ZMQ_PUB :my_pub_agent do | a |
a . end_point_type = :connect
a . end_points = [ 'tcp://127.0.0.1:5558' , 'tcp://127.0.0.1:5559' ]
end
AgentZMQ . define_ZMQ_REQ :my_req_agent do | a |
a . end_point_type = :connect
a . end_point = 'tcp://127.0.0.1:5552'
end
AgentZMQ . define_ZMQ_REP :my_rep_agent do | a |
a . reply = Proc . new { | msg | "ok" }
a . end_point_type = :bind
a . end_point = 'tcp://*:5552'
end
require 'agent_zmq'
AgentZMQ . start
at_exit { AgentZMQ . stop }
Es posible que desee restablecer los estados del agente entre pruebas sin detenerlo ni iniciarlo. Esto se puede hacer con AgentZMQ.reset
Tome el agente por el nombre dado en el archivo de configuración
my_agent = AgentZMQ . agents_hash [ :my_sub_agent ]
Este agente proporciona un caché de mensajes.
all_messages_received = my_sub_agent . messages_received
# returns and removes the last message received from the cache
last_message_received = my_sub_agent . pop
Al reset
, la caché del subagente se borra
El método publish
toma un solo mensaje de una o más partes.
my_pub_agent . publish "single part message"
my_pub_agent . publish [ "part 1" , "part 2" ]
El método publish
toma un único mensaje de una o más partes. El agente bloquea hasta que se recibe una respuesta y se devuelve como una serie de partes del mensaje.
response = my_req_agent . publish "single part message"
response = my_pub_agent . publish [ "part 1" , "part 2" ]
Al igual que el agente ZMQ_SUB, ZMQ_REP proporciona un caché de mensajes.
all_messages_received = my_rep_agent . messages_received
# returns and removes the last message received from the cache
last_message_received = my_rep_agent . pop
Al recibir solicitudes, el agente responderá con el resultado del Proc reply
. El valor de retorno de este proceso puede tener la forma de un mensaje de varias partes.
Hay cierto apoyo para el pepino. Consulte las funciones, por ejemplo, el uso.
Una vez que se captura un mensaje, es posible que desee analizarlo e inspeccionarlo de alguna manera. La técnica de serialización de mensajes es específica del sistema que se está probando. Algunos métodos de serialización comunes incluyen JSON y Protocol Buffers. json_spec y protobuf_spec son dos ejemplos de bibliotecas de prueba que se pueden combinar fácilmente con agent_zmq para realizar pruebas completas.
Consulte las especificaciones y características para ver todas las formas en que puede utilizar agent_zmq.
gem install agent_zmq
o agregue lo siguiente a Gemfile:
gem 'agent_zmq'
y ejecute bundle install
desde su shell.
Consulte las pautas de contribución.
Colaboradores:
agent_zmq es mantenido y financiado por Connamara Systems, llc.
Los nombres y logotipos de Connamara Systems son marcas comerciales de Connamara Systems, llc.
agent_zmq tiene derechos de autor © 2016 Connamara Systems, llc.
Este software está disponible bajo la GPL y una licencia comercial. Consulte el archivo LICENCIA para conocer los términos especificados por la licencia GPL. La licencia comercial ofrece términos de licencia más flexibles en comparación con la GPL e incluye servicios de soporte. Contáctenos para obtener más información sobre la licencia comercial de Connamara, lo que permite y cómo puede comenzar a desarrollar con ella.