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

Reply via email to