Saturday, June 11, 2016

ORCA

What is ORCA?


ORCA is a command line tool written in JAVA using AKKA for performance testing of APIs. It provides an interactive console where a user can submit or manage a performance testing job. It uses Actor Model instead of a thread model and thus scales far better than any thread based tools like Jmeter. It supports clustering and thereby for very high load generation you can use a swarm of orca agents. One of the problem in doing performance testing of apis is generation of dynamic request body of request url like http://myserver.com/getDetailsOfPerson/:personId. In most of the tools you either have to generate these kind of URLs and give it as CSV or write some plugin to generate it. Orca has inbuilt support for dynamic URL and Request body generation. Hence you can test apis with dynamic data and not static data. It uses mustache templates, data files and data generator functions to support it.

Load Generation

Below are some testing screenshoots which i performed using ORCA. For testing I  had setup a nginx server on 4 core 16 GB RAM machine and on a separate box with same configuration I started ORCA.

Number of requests: 100000, concurrency: 5000  
    

Above, right side picture shows the number of HTTP Connections in ESTABLISHED state during test. 

Below pictures show load generated with 1000, 2000 and 4000 concurrency.




How to use and download?

You can download the latest release from my github page for complete details and features head to the wiki section : https://github.com/shashank-neo/orca/wiki

Comments, bugs, suggestions are welcome.