I need to load test a chat tool with multiple rooms and channels which will test the overall load of thousands of users from multiple locations in all of the rooms, real time live chats in at least one room (hundreds of users) and simultaneous sidebar/1:1 chats. All users coming from a single location would not be considered a valid test.

Anyone know of a tool or tool set which might help me accomplish this. We currently use Visual Studio's native automation tool, jmeter and Selenium.

  • I would attack it through the API's on jmeter on distributed systems, is there a logical requirement to ensure that this is working on physical boxes?
    – DEnumber50
    Oct 11, 2018 at 17:35
  • Hi @DEnumber50, adding some detail here for our team... The chat tool is a web-based app using MVVM (angular & ASP.NET WebAPI). The load test solution ideally will account for this by including details from the client (web-browser / javascript at runtime). We do have an existing load test solution that is focused on the APIs (everything is on VMs btw). The existing load test solution does not provide any insight into client-side performance (javascript / UI latency for example). Oct 16, 2018 at 15:58

3 Answers 3


That's a very interesting Use case. A few points I would like to suggest here:

  • Setup JMeter scripts and trigger them from different machines (JMeter Distributed Testing). Make sure you use the same version of JMeter and Java on all the systems.

  • Also the timezone on a particular machine (node) needs to be different than the other. To be candid I have not tried this.

  • Apply PerfMon (Servers Performance Monitoring) and specify ips to view stats pertaining to particular server ips

  • Though on Blazemeter we can also configure additional values like multi locations. I'm not sure this feature is free.

  • Thanks Rohan for the helpful suggestions. Given the comment I made above can you provide any additional feedback on how JMeter can facilitate client-side (web browser) performance under load? Oct 16, 2018 at 16:02

JMeter can be used for chats testing, it supports at least the following protocols:

  1. WebSockets
  2. Long Polling
  3. XMPP
  4. MQTT

Check out 5 Ways to Load Test Popular Chat Plugins with JMeter article for example setup for each chat implementation.

You can mimic different locations by either doing IP spoofing so single machine will send requests from different IPs or going for Distributed Testing when single JMeter master orchestrates slaves which are running on different machines (can be geo-distributed)


JMeter and Selelium Grid should do the job. If you are using a cloud service you will be able to set up a farm of VMS were you can set up your agents for the load test. Make sure to use IP spoofing to simulate your users. What exactly are you trying to measure, as this will dictate the type of performance testing you will need to execute.

You could also take a look at BlazeMeter that it is used in conjuction with JMeter to load test chat applications. https://www.blazemeter.com/blog/5-ways-to-load-test-popular-chat-plugins-with-jmeter

Wayne's friend.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.