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 Installing Chalba support and must be set the it won’t work with java 8 JAVA_HOME java JDK JRE Visit download package for your environment. It is written in java so it will work in any platform which support java. https://buglens.com/ Extract the archiveAdd directory to the path of your system. bin In linux add full path of bin folder to path of In windows add bin directory to the environment variable. ~/.profile Type in terminal or command prompt.chalba should get executed. chalba 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. Task1.java chalba; skd.chalba.common.*; skd.chalba.requests.*; skd.chalba.runner.*; skd.chalba.interfaces.*; ( ) ( ) { { } { .run(); mainLoop(); _testCompleted(); } { { System.out.println( ); ResponseData googleResponse = requests.get( ); System.out.println( + googleResponse.code); requests.get( , AsyncResponseCallback() { { System.out.println( +arg0.body); } }); } (Exception e) { LOG(e); } } } package import import import import /** * This is the template File for writing the load script * Please follow the structure as described in this file * * sapan.dang */ @author @ThreadCount 1 @ThreadSpawnDelay 100 public class Task1 extends Task // this constructor is required public Task1 (TaskParams taskParams) //This method is executed after constructor //script must implement this method @Override public void run () super //executable method //it is good practice to write your code in other method //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 "send get request" "https://www.google.com/" "response code " //create async request "https://www.google.com/" new @Override public void onResponse (ResponseData arg0) " " catch The script is java class file. So you can code using any IDE just add found inside the directory of chalba in the classpath of the IDE. chalba.jar lib Here specifies how many thread you want to start. @ThreadCount(1) specify the delay after each thread specified in ms. @ThreadSpawnDelay(100) If you are familar with java it can be observed that first constructor is called after that is executed. public Task1(TaskParams taskParams) public void run() The script logic can be written in method. public void mainLoop() is called after completion of the test. _testCompleted(); Requests Chalba provides a easy to use api to generate the requests. For get request it accept the url, headers, query parameters as from the document requests.get() For async requset to the same get method. AsyncResponseCallback() 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 and reponses are logged in this is the csv file. Task1.java chalba.log response.ctl Analytics Currently chalba does not support out of the HTML reporting. However you can use your own analytics tool to analyse the file. response.ctl chalaba documentation https://buglens.com/guide/guide/