Agent-Framework zum Testen von ZeroMQ-Anwendungen
Die Agent-Typen entsprechen dem zugrunde liegenden ZMQ-Socket-Typ, der getestet wird
Deklarieren Sie Ihre Agenten innerhalb Ihres Projekts in config/zmq_agents.rb
wie folgt:
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 }
Möglicherweise möchten Sie die Agentenzustände zwischen den Tests zurücksetzen, ohne sie anzuhalten und zu starten. Dies kann mit AgentZMQ.reset
erfolgen
Rufen Sie den Agenten mit dem in der Konfigurationsdatei angegebenen Namen ab
my_agent = AgentZMQ . agents_hash [ :my_sub_agent ]
Dieser Agent stellt einen Nachrichtencache bereit
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
Beim reset
wird der Subagent-Cache geleert
Die publish
akzeptiert eine einzelne Nachricht aus einem oder mehreren Teilen
my_pub_agent . publish "single part message"
my_pub_agent . publish [ "part 1" , "part 2" ]
Die publish
akzeptiert eine einzelne Nachricht aus einem oder mehreren Teilen. Der Agent blockiert, bis eine Antwort empfangen und als Array von Nachrichtenteilen zurückgegeben wird
response = my_req_agent . publish "single part message"
response = my_pub_agent . publish [ "part 1" , "part 2" ]
Wie der ZMQ_SUB-Agent stellt ZMQ_REP einen Nachrichtencache bereit
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
Beim Empfang von Anfragen antwortet der Agent mit der Ausgabe des reply
Proc. Der Rückgabewert dieses Prozesses kann in Form einer mehrteiligen Nachricht vorliegen.
Es gibt eine gewisse Unterstützung für Gurke. Beispiele für die Verwendung finden Sie unter Funktionen.
Sobald eine Nachricht erfasst wurde, möchten Sie sie möglicherweise auf irgendeine Weise analysieren und untersuchen. Die Technik der Nachrichtenserialisierung ist spezifisch für das getestete System. Zu den gängigen Serialisierungsmethoden gehören JSON und Protokollpuffer. json_spec und protobuf_spec sind zwei Beispiele für Testbibliotheken, die für vollständige Tests einfach mit agent_zmq gepaart werden können.
Schauen Sie sich die Spezifikationen und Funktionen an, um zu sehen, wie Sie agent_zmq nutzen können.
gem install agent_zmq
oder fügen Sie Gemfile Folgendes hinzu:
gem 'agent_zmq'
und führen Sie bundle install
von Ihrer Shell aus aus.
Bitte beachten Sie die Beitragsrichtlinien.
Mitwirkende:
agent_zmq wird von Connamara Systems, LLC verwaltet und finanziert.
Die Namen und Logos von Connamara Systems sind Marken von Connamara Systems, LLC.
agent_zmq unterliegt dem Urheberrecht © 2016 Connamara Systems, llc.
Diese Software ist unter der GPL und einer kommerziellen Lizenz verfügbar. Die in der GPL-Lizenz festgelegten Bedingungen finden Sie in der LIZENZ-Datei. Die kommerzielle Lizenz bietet im Vergleich zur GPL flexiblere Lizenzbedingungen und beinhaltet Supportleistungen. Kontaktieren Sie uns für weitere Informationen zur kommerziellen Connamara-Lizenz, was sie ermöglicht und wie Sie mit der Entwicklung beginnen können.