إطار عمل الوكيل مصمم لاختبار تطبيقات ZeroMQ
تتوافق أنواع الوكيل مع نوع مقبس ZMQ الأساسي قيد الاختبار
داخل مشروعك، أعلن عن وكلائك داخل config/zmq_agents.rb
مثل هذا:
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 }
قد ترغب في إعادة تعيين حالات الوكيل بين الاختبارات دون التوقف والبدء. يمكن القيام بذلك باستخدام AgentZMQ.reset
احصل على الوكيل بالاسم الوارد في ملف التكوين
my_agent = AgentZMQ . agents_hash [ :my_sub_agent ]
يوفر هذا الوكيل ذاكرة تخزين مؤقت للرسائل
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
عند reset
، يتم مسح ذاكرة التخزين المؤقت للوكيل الفرعي
تأخذ طريقة publish
رسالة واحدة مكونة من جزء واحد أو أكثر
my_pub_agent . publish "single part message"
my_pub_agent . publish [ "part 1" , "part 2" ]
تأخذ طريقة publish
رسالة واحدة مكونة من جزء واحد أو أكثر. يقوم الوكيل بالحظر حتى يتم تلقي الرد وإعادته كمجموعة من أجزاء الرسالة
response = my_req_agent . publish "single part message"
response = my_pub_agent . publish [ "part 1" , "part 2" ]
مثل وكيل ZMQ_SUB، يوفر ZMQ_REP ذاكرة تخزين مؤقت للرسائل
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
عند تلقي الطلبات، سيقوم الوكيل بالرد بمخرجات reply
Proc. قد تكون القيمة المرجعة لهذا proc في شكل رسالة متعددة الأجزاء.
هناك بعض الدعم للخيار. انظر الميزات على سبيل المثال الاستخدام.
بمجرد التقاط الرسالة، قد ترغب في تحليلها وفحصها بطريقة ما. تقنية تسلسل الرسائل خاصة بالنظام الذي يتم اختباره. تتضمن بعض طرق التسلسل الشائعة JSON والمخازن المؤقتة للبروتوكول. يعد json_spec وprotobuf_spec مثالين لمكتبات الاختبار التي يمكن إقرانها بسهولة مع agent_zmq للاختبار الكامل.
تحقق من المواصفات والميزات لمعرفة جميع الطرق التي يمكنك من خلالها استخدام agent_zmq.
gem install agent_zmq
أو أضف ما يلي إلى Gemfile:
gem 'agent_zmq'
وقم بتشغيل bundle install
من Shell الخاص بك.
يرجى الاطلاع على المبادئ التوجيهية للمساهمة.
المساهمين:
تتم صيانة agent_zmq وتمويله من قبل شركة Connamara Systems, LLC.
الأسماء والشعارات الخاصة بشركة Connamara Systems هي علامات تجارية مملوكة لشركة Connamara Systems, LLC.
Agent_zmq هو حقوق الطبع والنشر © 2016 Connamara Systems, LLC.
هذا البرنامج متاح بموجب GPL وترخيص تجاري. يرجى الاطلاع على ملف الترخيص لمعرفة الشروط المحددة بواسطة ترخيص GPL. يوفر الترخيص التجاري شروط ترخيص أكثر مرونة مقارنة بـ GPL، ويتضمن خدمات الدعم. اتصل بنا للحصول على مزيد من المعلومات حول ترخيص Connamara التجاري وما يتيحه وكيف يمكنك البدء في التطوير باستخدامه.