Hi all,
Along with the release of SIPp 3.4, I'd like to announce a similar
project I've been working on: Quaff.
Quaff is a Ruby 1.9 library which, like SIPp, is designed to allow you
to write SIP test scenarios. It's available at
http://rubygems.org/gems/quaff, with the code at
https://github.com/rkday/quaff and a set of example scripts at
https://github.com/rkday/quaff-examples. It's already being used in the
live test suite for Project Clearwater, the open-source IMS core I work
on (see
https://github.com/Metaswitch/clearwater-live-test/blob/master/lib/tests/isc-interface.rb,
though this uses a previous version of the API).
The main differences from SIPp are:
* Conciseness - a simple UAC script using Quaff is only about 15 lines
of code, compared to over 100 lines for the SIPp uac.xml file. Quaff
helps abstract away some of the details of SIP (such as specifying the
headers on each message), allowing users to focus more on message flows.
* Better control logic - because Quaff is a Ruby library, the full power
of Ruby is open to users (e.g. if statements, loops, and regular
expressions), which should provide more flexibility and an easier
learning curve than specifying tests and jumps in an XML file.
* Easier integration into test frameworks - again, because Quaff is a
Ruby library, it's easier to report results and errors directly from a
test suite, rather than having to call an external binary and then parse
its return codes and logs.
* More rapid development - Quaff currently stands at 681 lines of Ruby
code compared to 27,822 lines of C++ code in SIPp. I hope that a smaller
codebase will make it easier for me and others to understand the design
and add new features.
Its main downside compared to SIPp is performance - Quaff is written in
Ruby rather than C++, and so is unlikely to ever be able to make
thousands of calls a second like SIPp is. I'm expecting it to mostly be
used for test calls (checking that calls can be made, that specific
headers have the desired effect, that SDP is being dealt with properly
through a NAT, etc.) rather than performance testing.
My near-term goals for Quaff are:
* Experiment with EventMachine to see if it's possible to create a
version of Quaff that can be used for performance testing
* Add more forms of authentication such as AKA
* Continue to improve the API to make it as simple as possible to use
* Better API documentation using Ruby's RDoc system
* Improve support for versions of Ruby other than 1.9
Please let me know any feedback you have - whether you're planning to
use it, want to know more about it or think it needs more improvements
to meet your needs, it would be great to hear from you.
I do intend to continue working on SIPp - it's still the best tool I
know of for high-scale SIP performance testing - so please don't worry
abut the future of it. My hope is that Quaff and SIPp will complement
each other, and that they'll be the tool of choice for functional
testing and performance testing respectively.
Best,
Rob
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
_______________________________________________
Sipp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sipp-users