Jmeter

I am using Jmeter from 2011 and my post related to using, tweaking, configuring and developing jmeter are listed here. Recently I have reviewed(technical reviewer)  Two good books for Jmeter from Packt Publishers . Here is the link for book one . And the review. I have reviewed Jmeter Cookbook technically, here is the link for book two.

Jmeter Basics :
Stress Testing in JMeter
How to manage User Agents in JMeter
Testing Web Service(SOAP/XML-RPC) using JMeter
How to perform Load testing in JMeter
How to install plugins in JMeter
How ro run JMeter with a proxy?
How run JMeter in different modes?
How to record steps for load test in JMeter?
How to distribute test in jmeter?
How to load test MS SQL Server in JMeter?
How to test Web Service (SOAP) with HTTPS(with credential)? 

Gui Introduction :
What is HTTP Request Defaults? Why we use it
What is HTTP Header Manager? Why we use it
What are the Timers in JMeter?
Reports/Listeners in JMeter
What are the Post Processors in JMeter?
What is JDBC Connection Configuration? Why we use this.

Jmeter Non Gui Execution: All commands you need to know. Example with windows Batch/Linux shell.

Plug Ins / 3rd Party Ad-dons. 
Introduction to JMeter Google PlugIn-Threads
Introduction to JMeter Google PlugIn-Logic Controlr
Introduction to JMeter Google PlugIn- Config elements
Introduction to JMeter Google PlugIn - Timer
Introduction to JMeter Google PlugIn- Post Processors
Introduction to JMeter Google PlugIn- Pre Processors
Introduction to JMeter Google PlugIn- Listeners
Introduction to JMeter Google PlugIn- Sampler
PerfMon-JMeter Server Monitoring PlugIn
3rd Party Plugins : Web socket , Groovy.

Client Side Performance Testing (Selenium/Firefox)
How to perform client side web performance testing in JMeter?
How to run multiple version of firefox in windows for automation?
JMeter Client side performance testing : How to write web driver sampler code?
How to debug steps in Jmeter Webdriver sampler?
Jmeter webdriver sampler code style

Advance: 
How to run JavaScript in Jmeter?
BeanShell Server commands in Jmeter
How to parameterize jmeter?
Driver classes & Database URLs for JDBC Drivers
JMeter Load Testing with Cassandra/MySql/Derby/SQLite/Ingres/PostgreSQL/Oracle/MS Access
How can we parametrize host Information in Jmeter?
How to get current time in Jmeter?
How to write log in jmeter?
How to read file in jmeter?
How to access Jmeter Properties ?
How to run BeanShell/JavaScript/JEXL in Jmeter?
String operations with jmeter functions
Regular Expression with Jmeter Function
Calculation with Jmeter functions
Test Plan-Thread-sample information using Jmeter
Function Helper in Jmeter

How to run Jmeter with custom properties.

Jmeter Tips & Tricks : 
How many users jmeter can support? 
JMeter Tips and Tricks
How to get Session id/ JSON id / Cookie id / token/ view state?
How to make reports(and comments) in Jmeter?

Development : 

Jmeter Code overview?
Introduction to Jmeter Plugin Development
Getting started with Jmeter Development
Extending Jmeter existing components to make own application Specific Jmeter
How to customize Jmeter for your web application?
How to run Jmeter Scripts from IDE.
How to run Jmeter Scripts with ANT.
How to run Jmeter Scripts with Maven.
How to run Jmeter Scripts with Cradle.

Running Jmeter with CI system

How to run jmeter in Jnekins with Performance Plugins? 

How to run with Fitnesse? 

Scale Up your Jmeter Hosts using AWS.

How to run Distributed Jmeter without client-server model. 

How to setup environment parametrized distributed system? How to collect results?

Configuring Jmeter : 
Configuring JMeter Part 1 : JTL File Loading Thread, User Properties for Plugins on CSV format, Custom Libraries, Debugging
Configuring JMeter Part 2: Http sampler behaviors
Configuring JMeter Part 3 : Host and RMI configurations,
Configuring JMeter Part 4 : Log Configuration
Configuring JMeter Part 5: Result Configuration
Configuring JMeter Part 6: Protocols (Http & Https )
Configuring JMeter Part 7: Recording Proxy Server 
Configuring JMeter Part 8 : Network Proxy 
Configuring JMeter Part 9 : Parsers (Http Sampler Response, HTML , WML, Text)
Configuring JMeter Part 10: Batch processing , timing, buffing
Configuring JMeter Part 11:TCP sampler
Configuring JMeter Part 12 : BeanShell Server, Initialization , Defining
Configuring JMeter Part 13: Class-path , Properties
Configuring JMeter Part 14 : CSV Data read, data set, time
Configuring JMeter Part 15:Summary Results
Configuring JMeter Part 16 : Cookie Manager
Configuring JMeter Part 17 : Mailer Model, Load Sampler
Configuring JMeter Part 18:  Jmeter Engine, Misc (some others)
Configuration that I work with JMeter : Bat configuration, different properties.

51 comments:

  1. Very nice blog!!! i thought u r from India and I was wrong u r from Bangladesh. really nice blog

    ReplyDelete
  2. very nice and usefully blog.

    ReplyDelete
  3. Hi Shantonu....

    I would like to thank for the information provided..Its very clear and understandable format...

    Could you please help me to learn more in LoadRunner performance tool.
    Regards,
    Joby

    ReplyDelete
    Replies
    1. yes, sure. contact me over mail, start with basic web application.

      Delete
  4. It's PERFECT

    ReplyDelete
  5. Hi Shantonu,

    I am going through your Blog, it's very nice and helpful. I have been assigned with the task of Performance Testing on a chat application. Can you please let me know how to approach and what should ideally be the test parameters?

    ReplyDelete
    Replies
    1. Hi

      for chat application, you need to know how and which protocol the chat is using. (usually websocket), then use jmeter's samplers (use plugins) associate with your needs. (like UDP).

      Thanks

      Delete
  6. Hi

    Can you provide help me providing inputs of implementing jenkins with CI - ours is not a development project

    we would like to implement jenkins and run jmeter as headless can you provide step by step configuration

    ReplyDelete
    Replies
    1. This is one of the most easy way
      > create a bat file or shell script file to run jmeter in command line (test before apply)
      > install jenkins and create new job (free style) http://screencast.com/t/9TnokZN9h
      > add the bat commands inside the job..

      Done >

      Another way -> there is a plugins called performance plugins which runs jmeter as maven job execution which shows graph. That need one time configuration only.
      [CI things I dont used to write as those are kind of easy to do, not core testing, if you have some queries, mail me, I will write some blog post for Jenkins only for that ]
      .

      Delete
  7. Thanks for your prompt response,

    But I am planning is to run JMeter headless and once after the test is completes I need to see the build results in HTML format or CSV ..

    Have seen the performance plugin for Jenkins for me the configaration is difficult task and I would like to accomplish the task with a few clicks and my manger needs to gain access of the results in a web portal so he no need to depend on our email

    Let me know more information, thanks for your support beforhand

    ReplyDelete
  8. Hi

    Now that I have configured performance plugin to run JMeter headless - test ran successfully, however the build failed for below reason.

    Performance: no JMeter files matching 'D:\JENKINS\jobs\JMeter_Freestyle\workspace\results\jtl\**\*.jtl' have been found. Has the report generated?. Setting Build to FAILURE
    Build step 'Publish Performance test result report' changed build result to FAILURE
    Finished: FAILURE

    One more issue is I am not able to view the performance trend report -- I dont have clue why this is happening.

    I am able to view the .jtl and .html files in respective folders - Any inputs is much appreciated

    Thanks

    ReplyDelete
    Replies
    1. The report is telling -> result report failure. You need to confirure this.. you are using performance plugins, right?

      Delete
  9. Hi

    Yes I am using performance plugin for Jenkins

    ReplyDelete
  10. Hi

    Will you able to come up with some step by step guide to configure jmeter with jenkins that would be really great.

    As well you could share your experience of deploying CI in your project. Thanks in advance

    ReplyDelete
    Replies
    1. Sure, I can do that in weekend, just knock me.

      Delete
    2. Hi

      Regarding jenkins step-by-step guide, just letting you a reminder ?

      Delete
    3. For you..:)
      http://shantonusarker.blogspot.com/2015/07/run-jmeter-jnekins-performance-plugins.html

      Delete
    4. Hi Shantonu,
      I went through your Blog, it's amazing and great helpful. Looks like over qualified on Jmeter :) I took a challenge task of Performance Testing on a chat application. Ideally the chat application i'm working on is same as the HIKE or Whatsapp messenger which is already in the market.
      The challenge is to perform load test on XMPP eJabberd server. I did some research on How To!! but dint get much information. (https://github.com/yandex-load/JMeter-xmpp-plugin)
      It would be great if you can help me out with this. What approach will be good have in Jmeter and setting it up performance test scripts.

      Thanks in Advance
      Bharath

      Delete
  11. Hi Shantonu,

    I m new to learning the Jmeter for performance testing. I have small task. That is 1000 no of users login and just 1000 no of business process transactions and then 1000 users logout. I don't know what are the requests are need. Will you pls explain me? Thanks i Advance Nagaraj Rathinaraj

    ReplyDelete
    Replies
    1. record login & logout steps in jmeter , see data coming & going, co-relate those, and run jmeter thread as your configuration. if you have 1000 users via CSV file , you can read using csv file reader. This is very simple, lots of videos in utube for this.

      thanks

      Delete
  12. how to use actions in webdriver sampler with jmeter

    ReplyDelete
    Replies
    1. See "Client Side Performance Testing (Selenium/Firefox) "

      Delete
  13. Hi shantonu

    Need some clarification , An interviewer asked me question on performance testing
    1. How many threads are you running , Suppose 100 how do you justify that 100 users or requests are going parallel how do you justify 100 users are generated in your Processor parallely.

    Thanks

    ReplyDelete
    Replies
    1. 100 thread does not means all parallel. To ensure parallel user you need to use additional steps to make it parallel requests. when you create 100 threads, Jmeter or any other tool will try to create and run in parallel but due to resource allocation, they cant ensure.
      to ensure parallel requests you need additional technique to ensure
      1. Wait timer -> you need to wait for 100 request thread to generate and request them all together
      2. Multiple long iteration -> iterating whole execution 3-5 times , to make it possible to have all of the request generated and run in parallel

      With jmeter, I use different timers to do that.

      and the is level of concurrent/paralle users. Usually tools measures requests/user over 1 second.

      Delete
  14. Hi, I am trying to test a web application in Jmeter. It is just simple login and logout. when i created scripts in Vugen and Jmeter. When i run a small smoke test with 5 users Jmeter RTS observed are very high compared to Vugen. almost vugen & Fiddler RTS are matching for single user but not for Jmeter. # of concurrent connections are also has a difference from Vugen to Jmeter.

    Looking for a resolution. Please suggest me. I am trying recording the script with Blazemeter extension and run that from Jmeter. not sure whether it will be helpful.

    Please help me with any other workaround.

    ReplyDelete
    Replies
    1. Jmeter script timing may differ for number of reason.
      1. As it is Java based tool, need initiation time for thread. So, some added initial time
      2. Jmeter GUI is not suitable for any decision making testing.
      3. If you add any visual listener/tree, it will slow up the whole execution. Massive sample collection make this.
      4. If you add response assertions, it will added up to response.
      I prefer , if you are comparing, run Jmeter from command line , use => Generate Summary Results listener which shows results in command line

      Delete
  15. Hi shantanu,

    It's a great blog.

    Can you give me some idea/example of what is jmeter framework?
    Isit only generalizing the variable fields or is it is like using jmeter API with java code ..just like selenium framework.

    Thanks,
    Bibek

    ReplyDelete
    Replies
    1. jmeter framework => Jmeter API, you can get whole Jmeter from maven and make your own test tool or framework based on that (that we do for projects in big scale). You can customize jmeter with lighter resources to run more accurately. Usually project specific need can specify what you framework should need. As jmeter is a plug-in based architecture (micro kernel), you can make your own component and use with exist jmeter system.

      Example, let say you have chat system with your own type of protocol. So, you need to implement the protocol request and apply like as jmeter sampler. You need to make a maven/gradle project where you extend and organize whole jmeter dependency (with properties) and use your protocol request. Then the whole project will be run locally or from CI as jmeter runner. (single node, distributed or cloud)

      Delete
  16. This is excellent place to look for JMeter help, thanks, Shantonu!! Wondering if you got a chance to use JMeter for WCF services (HTTP) load testing? How could JMeter read App.Config file which is required for WCF services testing?

    Ram

    ReplyDelete
    Replies
    1. for WCF, you need to run your web server locally and use jmeter test via http calls (XML body)..
      if you have WSDL, you can parse and make function calls. (tested long time back in 2014)

      Delete
  17. Hi Shantonu,
    I am Looking for a Framework for API Calls(WEB Service SOAPUI) ,i need to develop a framework in Jmeter,How to develop Framework in JMETER can u suggest me.

    Thanks,
    Ashok.

    ReplyDelete
    Replies
    1. jmeter has http sampler as well as jmeter plugins as REST , so, you can make web service calls..

      i prefer using restasured

      Delete
  18. Hi Iam trying to capture new token from response code
    csrfToken\" : \"NWJiYzNhMmNhNjBkNDcuNjExNzkwNDQ=\"

    using csrfToken\" : \"(.+?)\"
    unable to capture can you please let me know how to capture above token.

    thanks in advance!

    ReplyDelete
  19. Hi Shantonu Sarker,
    I am trying to send many values to single request where that values need to be send it from csv file how can i do this

    ReplyDelete
  20. Hi Shantonu
    Keep up the good work. I am currently working on doing stress testing on a website that loads BI systems across various platforms.
    I have tried with multiple solutions but nothing worked. My use case is as under:
    1. Create a load of 5000 users
    2. All 5000 users log in concurrently.
    3. They all visit the dashboard that has a video playing on it.
    4. Logout of the system.

    The script works flawlessly for 4000 users but if I try putting the load of 5000 users, I start receiving the following error:


    Response message: Non HTTP response message: Connect to failed: Connection refused: connect

    When I try requesting the same endpoint to server manually, it replies back, though it gets a little slow.

    I am really not getting, why I am facing such an issue.


    Any help will be highly appreciated.

    ReplyDelete
    Replies
    1. "Non HTTP response message" => problem with load generators. either your jmeter PC is over used or out of resources.
      Increase JVM memory to see if it works.

      Delete
    2. Try increasing the number of TCP connections on each JMeter load agent.

      Delete
  21. Hi Bro,

    Is it advisable to use multiple threads to group request or is there any other option.My requirement is I just want to group the request. Kindly suggest please.

    ReplyDelete
    Replies
    1. put all of your request in a single thread group, this will work fine

      Delete
  22. Hi Shantonu,
    I want to use JMeter to Load Test Live HLS to check Concurrency of Wowza Streaming Engine.I have added 2 HLS samplers.But when I run the script only one sampler(live stream .m3u8) url is getting executed.Can we run multiple hls urls at a single time and with number of threads??

    ReplyDelete
    Replies
    1. you can use multiple thread groups. please share your JMX to know details

      Delete
  23. Hi,
    i have a question in Jmeter
    I have conncurrency Thread with set up
    Users: 100
    Ramp: 5 mins
    Step up:10
    Hold : 30 mins

    inside the Thread, i have
    1. Once Only Controller with 5 transactions
    2. Switch Controller with 5 switch case
    I have csv config to send username and pwd and actionFlag based on that the switch case transactions will work. In the csv file 100 lines with different record name and different actions to perform for each record(5 actions divided equally among 100 records)
    When i run the thread, no of transactions are more than what i expected. For example if 5 users are having create Record action, after thedefined 5 users as per the csv completes creating record other users fro mthe csv files are also doing create record rather than the same 5 user repeating the action till the hold time.
    Please clarify me how the concurrecy thread works with switch controller

    ReplyDelete
    Replies
    1. can you share your JMX to see the actual configuration?

      Delete