For the Qpid JMS client we have a basic test peer that uses the 'Data'
utility from proton-j to encode/decode representations of the various
AMQP frames, validates things received match certain expectations we
might have and responds with what we want it to. Its basic and not the
nicest thing to use, but it is useful. It is essentially the opposite
of what youd need to test a server though, and so isnt itself of much
use there.

ActiveMQ and ActiveMQ Artemis have little test clients in their trees
that they use to test their own AMQP behaviour more granularly than
the JMS API can for example. These are small'ish wrappers around
proton-j to give a more client-ish API for accessing protocol features
and allowing some validation of what the broker did. Its not as
granular as the clients test peer and it mostly uses the proton-j API
under the covers rather than constructing things itself, but is a lot
simpler to use as a result.

I personally think for the common set of things you might want to test
the flexibility of having things in-tree for the broker will outweigh
the usefullness and overhead of maintaining something independent.

Robbie

On 14 February 2017 at 16:28, Oleksandr Rudyy <oru...@gmail.com> wrote:
> Hi all,
>
> The Qpid Java Broker team came to the realization that we have a gap
> in our system tests for Qpid Java Broker. At the moment our system
> tests are based on API provided by JMS client implementations. The JMS
> API does not allow us to test all aspects of AMQP implementation on
> broker side. Thus, we are looking into introduction of special system
> tests which would allow to test AMQP communication between test
> clients and broker. We need a framework which would allow us to test
> broker responses on receiving various test AMQP frames.
>
> Ideally we would like to have an ability within the test framework to
> build AMQP test frames, send them to the Broker and assert the Broker
> response frame(s). We are looking into testing of AMQP 1.0 but
> potentially the test framework can be expanded to test earlier AMQP
> protocols.
>
> It seems that proton-j is a good candidate for writing such testing
> framework. However, before jumping into implementation with proton-j I
> would like to understand what are the testing approaches used by other
> projects within Qpid space and outside Qpid. Perhaps, we can re-use
> other project testing frameworks for testing Qpid Java Broker.
>
> Potentially we can try to use "Qpid Client Interoperability Test
> Suite" for implementing such tests but I am not sure about
> practicality of such approach, as the Test Suite seems is testing a
> set of predefined scenarios. Please, correct me if I am wrong.
>
> More over, I tried to build the Test Suite following the instructions
> provided in QUICKSTART but make failed with the below
> [  2%] Building CXX object
> shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/qpidit/QpidItErrors.cpp.o
> In file included from
> /home/alex/workspace/qpid-interop-test/shims/qpid-proton-cpp/src/qpidit/QpidItErrors.cpp:22:0:
> /home/alex/workspace/qpid-interop-test/shims/qpid-proton-cpp/src/qpidit/QpidItErrors.hpp:25:24:
> fatal error: json/value.h: No such file or directory
>  #include <json/value.h>                       ^
> compilation terminated.
> shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/build.make:62: recipe
> for target 
> 'shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/qpidit/QpidItErrors.cpp.o'
> failed
> make[2]: *** 
> [shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/qpidit/QpidItErrors.cpp.o]
> Error 1
> CMakeFiles/Makefile2:803: recipe for target
> 'shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/all' failed
> make[1]: *** [shims/qpid-proton-cpp/src/CMakeFiles/Common.dir/all] Error 2
> Makefile:127: recipe for target 'all' failed
> make: *** [all] Error 2
>
> Please let me know if we can reuse any existing AMQP testing
> framework. That would save some time for "re-inventing the wheel". Any
> suggestions, ideas and recommendation are welcome.
>
> Kind Regards,
> Alex
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to