TLDR
In this post, I will provide arguments that amplify Grinder advantages. I was provoked to write this post because I witnessed a lot of false facts that Grinder is the worst load testing tool.
First fact. Grinder is load testing framework. It is not a tool. It is a framework that enables you to tailor load testing tool according to your needs.
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. [source]
What are the advantages of framework?
“Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime”
On the other side, JMeter is a tool:
“The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance.”
Software testers usually prefer JMeter over Grinder because with JMeter they can start first load test without any knowledge of programming. Let me be clear, this is not bad decision only if it is appropriate to you project. JMeter offers rudimentary “visual programming”, but if you need to load test scenario that involves logic, you will need to use Java.
Grinder programming language is Jython. This is Python that runs on Java Virtual Machine which means that you are using Java multithreading. Also, you can call any library written in Java. Grinder learning curve is not steppy, but this could be resolved if you ask your developers for help. Also, by writing your first load testing script you will learn not only Grinder, but also your product (for example business data involved in http interactions).
Once I heard that Grinder is obsolete and that project is dead. Which is wrong. Grinder do not pumps up new features, because current framework features are enough to load test any modern application.
During the Grinder learning, you will also learn about multithreading programming. In Grinder this is abstracted in framework, but you do need to use Grinder framework. For example, in order to have client multithreaded logging, you need to use Grinder logging method, do not reinvent the wheel and write your own.
Grinder has basic reporting out of the box which is often pointed out as its disadvantage. In combination with Grinder Analyzer, this issue is also resolved.
Grinder is not a hammer, but also it is not worst than JMeter or some fancy paid tools.
This post was first published at zagorski software tester blog.