กรอบงานตัวแทนที่ออกแบบมาสำหรับการทดสอบแอปพลิเคชัน 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 และ Protocol Buffers json_spec และ protobuf_spec เป็นสองตัวอย่างของไลบรารีการทดสอบที่สามารถจับคู่กับ agent_zmq ได้อย่างง่ายดายเพื่อการทดสอบที่สมบูรณ์
ตรวจสอบข้อมูลจำเพาะและคุณสมบัติเพื่อดูวิธีการทั้งหมดที่คุณสามารถใช้ agent_zmq
gem install agent_zmq
หรือเพิ่มสิ่งต่อไปนี้ใน Gemfile:
gem 'agent_zmq'
และรัน bundle install
จากเชลล์ของคุณ
โปรดดูแนวทางการบริจาค
ผู้ร่วมให้ข้อมูล:
agent_zmq ได้รับการดูแลและให้ทุนโดย Connamara Systems, llc
ชื่อและโลโก้ของ Connamara Systems เป็นเครื่องหมายการค้าของ Connamara Systems, llc
agent_zmq เป็นลิขสิทธิ์ © 2016 Connamara Systems, llc.
ซอฟต์แวร์นี้มีให้ใช้งานภายใต้ GPL และใบอนุญาตเชิงพาณิชย์ โปรดดูไฟล์ใบอนุญาตสำหรับข้อกำหนดที่ระบุโดยใบอนุญาต GPL ใบอนุญาตเชิงพาณิชย์เสนอเงื่อนไขใบอนุญาตที่ยืดหยุ่นมากกว่าเมื่อเทียบกับ GPL และรวมถึงบริการสนับสนุน ติดต่อเราเพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับใบอนุญาตเชิงพาณิชย์ของ Connamara สิ่งที่เปิดใช้งาน และวิธีที่คุณสามารถเริ่มพัฒนาด้วยใบอนุญาตดังกล่าว