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
실행하십시오.
기여 가이드라인을 참조하시기 바랍니다.
기여자:
Agent_zmq는 Connamara Systems, llc에서 유지 관리하고 자금을 지원합니다.
Connamara Systems의 이름과 로고는 Connamara Systems, llc의 상표입니다.
Agent_zmq는 저작권 © 2016 Connamara Systems, llc입니다.
이 소프트웨어는 GPL 및 상용 라이센스에 따라 사용할 수 있습니다. GPL 라이선스에 명시된 조건은 LICENSE 파일을 참조하세요. 상업용 라이센스는 GPL에 비해 더 유연한 라이센스 조건을 제공하며 지원 서비스를 포함합니다. Connamara 상용 라이센스, 그것이 가능하게 하는 것, 그것으로 개발을 시작할 수 있는 방법에 대한 더 많은 정보를 원하시면 저희에게 연락주세요.