Skip to main content

Deals You Can't Miss

1 Year Subscription

Benchmarking Web Application with Autobench

When it comes to do performance testing of a web application, there crops up crazy many questions like,  "What all aspects of the web application do we need to cover as part of performance testing?", "What are the different tools that are readily available?", "How much money can we or the company spend in this effort?", "Where do I start from?", "What all tools should I consider?", "On what basis should I filter some of them for further consideration?", etc.

I'm not going to provide insight on what is the best way to go about it or even publish how we went about doing it all. I will however blog on those points sooner or later. If you however have crossed these points and made up your mind to spike or consider using Autobench, then read on......and share me your experience or comments.

What is Autobench?
Autobench is an open-sourced tool to do fairly decent performance testing of any web application. It is a wrapper on top of another open-sourced tool called Httperf. This is a command-line tool like its partner Httperf.

What are its features?
Some of the feature of Autobench are as follows:
  • Its open-sourced.
  • Its commnad-line tool.
  • It can generate reports in tsv (tab seperated view) or csv (comma seperated view) formats.
  • From the tsv report, graphs can be generated with accompanying tool called bench2graph that gets installed along with autobench.
  • Easy to install.

What are its drabacks?
Some of its drawbacks being:
  • Its graphs are not very intutive enough in the sense that x-axis and y-axis are not marked with requests/sec and responses/sec respectively.
  • Its not very handy tool to do soak-testing of an application.

What is the installation procedure?
  • Download the Autobench source tarball from (For the purpose of example, let it be autobench-2.1.2.tar.gz)
  • Untar it with the following command:
    • $ tar xvfz autobench-2.1.2.tar.gz
  • Now change present working directory to the extracted directory (autobench-2.1.2)
    • $ sudo make
      Command output:
      gcc -O2 -Wall -o crfile crfile.c
      crfile.c: In function ‘write_buffer’:
      crfile.c:81: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
      crfile.c: In function ‘main’:
      crfile.c:173: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
      gcc -O2 -Wall -o sesslog sesslog.c 

  • And finally run the below mentioned command:
    • $ sudo make install
      Command output:
      mkdir -p /usr/local/bin /usr/local/etc /usr/local/man/man1
      perl -pi -e 's/my \$MASTER_CONFIG =.*$/my \$MASTER_CONFIG = "$ENV{AB_CFG}";/' autobench
      cp crfile autobench autobenchd autobench_admin sesslog bench2graph /usr/local/bin
      cp autobenchd.1 autobench_admin.1 crfile.1 autobench.1 sesslog.1 bench2graph.1 /usr/local/man/man1
      cp autobench.conf /usr/local/etc

Testing/Using autobench and bench2graph

$ autobench
    Autobench configuration file not found
     - installing new copy in /home/karthik/.autobench.conf
    Installation complete - please rerun autobench
Note that, /usr/local/etc/autobench.conf
Default configuration file, copied into the user's home directory when autobench is first run.

$HOME/.autobench.conf   #The active autobench configuration file.

$ bench2graph
    Usage          : bench2graph PARAM_1 PARAM_2 [PARAM_3 ... PARAM_N]
    Parameter 1    : autobench results file
    Parameter 2    : name of the postscript output file
    Parameter 3..N : [optional] columns to display in the graphic

$ bench2graph autobench_results.tsv
    Enter the title : Test Graphical Results For All Data
    /usr/local/bin/bench2graph: 90: gnuplot: not found

[Work In Progress...Do visit again...]

My Popular Posts

Ten Commandments of Egoless Programming

We are nothing but the values we carry. All through my life thus far, I tried to influence people around me with the virtues I value. Thanks to some good reading habits I had inculcated, and the fortune of being in good community of peers and mentors alike, I managed to have read some real good books. This post is about the 10 commands of egoless programming in Weinberg's book. I shall explain the commandments based on my experience here. So very many decades ago, Gerald M. Weinberg authored  The Psychology of Computer Programming . In it, he listed The Ten Commandments of  Egoless Programming , which remains relevant even today for us as not just programmers but as team-members. Weinberg is regarded as a pioneer in taking a people-centric approach to computing, and his work endures as a good guide to intelligence, skill, teamwork, and problem-solving power of a developer. When they appear to inspire and instruct, we find that they can apply to just about every business area, and e

Should I buy refurbished laptop from Amazon?

This post is based on my experience with and guess it to be true on all other platforms as well. At least you can check out and verify for these pointers before you make that decision to buy renewed/refurbished laptop on Amazon with your hard earned money. I see this question propping up in several forums and on many different occasions. In the recent past, I had my 5 year old dell laptop that gave up because its motherboard failed. One of the options that I had in my mind was to re-use the HDD and the 16GB DDR4 RAM of that old laptop in the one that I purchase next as secondary.  I had come to a conclusion that it is not worth buying a refurbished/renewed laptop at all. Why? For the following reasons, most of which I see as BIG #RedFlags: You got to remember that Amazon provides a platform for 3rd party sellers to sell their products as well. So in your search for refurbished laptops you wouldn’t want to choose some random 3rd party seller who Amazon doesn’t endorse. You cou

Multi-tenant Architectures

  Multi-tenancy Application Deployment Architecture could be modeled in 4 broad ways: Separate Apps & Separate Databases Shared Apps & Shared Databases Separate Apps & Shared Databases Shared Apps & Separate Databases There is no right or wrong here. It's about choice and consequence that you should consider taking into your business context and constraints. In this post I intend to jot down a some key points to keep in mind for each of these multi-tenant architecture. These are more of quick notes for my quick reference, a cheat-sheet of sorts when I have to make choices. And I guess this can come handy to you too in your wise decision making. Separate Apps & Separate Databases Easiest to implement from development and deployment stand-point. Just automate the deployment infrastructure for every tenant for quick set-up. Most expensive of all the models from infrastructure cost stand-point. Relatively longer deployment t