Hackernoon logoMeet Chalba An Open Source Load Testing Tool For Java by@skd

Meet Chalba An Open Source Load Testing Tool For Java

ᕦ( ▨̅ ͜▨̅ )ᕥ Hacker Noon profile picture

@skdᕦ( ▨̅ ͜▨̅ )ᕥ

ᕦ( ▨̅ ͜▨̅ )ᕥ

Chalba is an open source hackable load testing tool. Chalab is inspired form jmeter, gatling, grinder like tool.

Unlike jmeter it don’t have GUI you have to write the load code and the code is written in java thus enables you to leverage the full power of java.

The best part is you don’t need any build tool. just pass the java file to it for execution. With help of these I can easily tweak my scripts in the linux box from where I am generating load

  • Website : http://buglens.com
  • Github : https://github.com/sapandang/chalba


  • Chalba support java 8 and JAVA_HOME must be set the java JDK it won’t work with JRE
  • Visit https://buglens.com/ download package for your environment. It is written in java so it will work in any platform which support java.
  • Extract the archiveAdd bin directory to the path of your system.
  • In linux add full path of bin folder to path of ~/.profileIn windows add bin directory to the environment variable.
  • Type chalba in terminal or command prompt.chalba should get executed.

First Script

Now lets write are first load script in chalba. Chalba provide features to generate the boilerplate script.

chalba -newFile

It will generate the file name 

 in the current directory.

package chalba;
import skd.chalba.common.*;
import skd.chalba.requests.*;
import skd.chalba.runner.*;
import skd.chalba.interfaces.*;

 * This is the template File for writing the load script
 * Please follow the structure as described in this file
 * @author sapan.dang
public class Task1 extends Task {

    // this constructor is required
    public Task1(TaskParams taskParams) {

    //This method is executed after constructor
    //script must implement this method
    public void run() {
        //executable method
        //it is good practice to write your code in other method
        _testCompleted(); //call when the test is complete

    //Main Loop write your logic here
    public void mainLoop() {

        //Write your code in the try-catch block
        //to avoid any unexpected closure of the script
        try {
            //create GET request
            System.out.println("send get request");
            ResponseData googleResponse = requests.get("https://www.google.com/");
            System.out.println("response code " + googleResponse.code);

            //create async request
            requests.get("https://www.google.com/", new AsyncResponseCallback() {
                public void onResponse(ResponseData arg0) {
                    System.out.println(" "+arg0.body);
        } catch (Exception e) {

The script is java class file. So you can code using any IDE just add chalba.jar found inside the

directory of chalba in the classpath of the IDE.

Here @ThreadCount(1) specifies how many thread you want to start. 

@ThreadSpawnDelay(100) specify the delay after each thread specified in ms.

If you are familar with java it can be observed that first constructor public Task1(TaskParams taskParams) is called after that public void run() is executed.

The script logic can be written in public void mainLoop() method.

_testCompleted(); is called after completion of the test.


Chalba provides a easy to use api to generate the requests.
For get request requests.get() it accept the url, headers, query parameters as from the document

For async requset AsyncResponseCallback() to the same get method.

currently chalba support only GET and POST methods.

Running the script

To run the script just pass the file name to chalba and it will exectute the script.

chalba -f Task1.java

It will execute the

. Chalba writes logs in chalba.log and reponses are logged in response.ctl this is the csv file.


Currently chalba does not support out of the HTML reporting. However you can use your own analytics tool to analyse the


chalaba documentation https://buglens.com/guide/guide/


Join Hacker Noon

Create your free account to unlock your custom reading experience.