Looking for a good QA tool to simulate load on web application and measure performance from end-user perspective

Looking for a good QA tool, free or not.

Need to simulate activities of about 20 users on a web application.

Need to run for about 25 rounds, open and close rounds and allow users to place bids.

Multiple APIs are running on the background.

That means that states constantly will change while user stays on page.

Need to be able to simulate different systems and browsers.

Need that tool to provide performance matrix, measuring it from user’s perspective.

Ideally will require minimum to no coding.

Does something like that exists out there?

Hello Olga!

In my experience, load testing is a important part of testing worthy of your time to learn more about what it is and the tools available. It is different from the typical types of evaluations for behavior in that it depends on that behavior being reasonably correct in order to provide good information about the performance of the product. The information objectives of performance testing include machine performance as well as product performance. It is, in some respects, a deeper form of evaluation and rarely provides pass/fail results. Performance testing was never my thing but I appreciate what it brings to a project.

I have had reports from a tool called Load Runner, and from Microsoft (MS) Test. I believe both of them meet most of your criteria except the last: minimum or no coding. I’m not familiar with any tools that don’t require some set up or configuration. Some knowledge of programming is helpful.

Joe

You may want to look into Sitespeed.io

2 Likes

JMeter should be useful tool for your requirement which would require least amount of coding. But for performance testing, you don’t need to simulate multiple systems/browsers, JMeter won’t do that, though you can simulate different browser user-agents.

But JMeter is only for API testing, right?
It does not render pages as browser X or Y - correct?

Yes, all right.
may you are useful squish - https://www.froglogic.com/squish/editions/automated-web-gui-testing/

I find it’s helpful to be really clear about what kinds of “load” can be generated by a test tool:

  • transport-level load…meaning the send-receive (or syn/ack) network activity generated towards a backend target system(s)
  • local api calls…meaning load is generated locally onto an application’s interface where by that application may generate traffic onto a given backend target system(s)
  • user-interface (or GUI) level scripts where the analog events are generated into (or onto) a rendered user-interface in the presentation layer of the application.

Depending on what you would like to measure, you would choose different tools to generate traffic:

  • measure back-end database scalability…choose a transport-level tool
  • measure the application’s internal structure for concurrency…choose a tool to generate local api calls
  • measure the rendering time of a single session on the client browser…choose a tool to generate traffic into/onto the GUI

JMeter (and lots of tools) can generate all three of these kinds of traffic, using various components, virtual user types or 3rd-party plugins. Some tools do this better than others - like using concurrent WebDriver plugin in JMeter versus the LoadRunner TruClient capability.

HTH,
-mt

JMeter is for API testing and for performance/load/stress testing. You can do distributed load generation/simulation using multiple threads and multiple nodes. Here is doc to get you started

Well from my experience of testing I came to the conclusion that a proper Load Performance testing can be done without involving GUI. This is because when you have to test “Login” functionality from GUI its easy to provide Email & password however when you have to do it for 10k users with very minimum time (concurrent requests) then its almost difficult to do via GUI (also in some other complex cases)

2 Ways to do Load/Performance testing

1- API Calls: Being a backend tester its always easy to do load testing. Simply write up all the apis suite in the sequence of user actions (Signup > Login > Action > Logout) using tools like SoapUI. Now execute those test suites with virtual users… this gives the exact & concrete results of each call hence helps us all to see request/response time of each call

See how easy it is via backend calls :slight_smile:

2- Even if you still want to load test via GUI then:

  • Use a recorder to record the user action
  • Import that recorded scripts (having a hell of js calls) into some Load testing tools like JMeter
  • Add virtual users and execute… If you are lucky enough then this will work but in most of my cases (depending on site to site) the script execution fails…

So in the end again … the point 1 is recommended from my perspective. I would appreciate if you guys share your thoughts on my testing approach

You can find a lot of commercial tool available online out there, its all depends upon the condition for which you are looking for as explained by @mtomlins Free and open source tools may be a good option to go for.

Well, there are lot of performance metrics out there, but how fast enough is your website, is the major performance metric that need more focus to put on. First of all, you need to lookup for the baseline performance of your application.
Then you will need a server-side, client-side, and performance tools in order to make confirm the good user experience.

You can get & check the report for the performance factor on server side through these tools:

  • locust.io
  • Siege
  • Apache Bench
  • MultiMechanize
  • Jmeter
  • HTTPerf

Whereas for client side, you can measure it via GOOGLE PAGE SPEED INSIGHT. On the other hand Webpagetest.org and Google mod_pagespeed can also be utilize to evaluate client-side performance from real browsers.

2 Likes

Shout out for gatling.io as no ones mentioned it. Even though it doesn’t have a UI like jmeter for example, I found it much easier to work with once you get your head around simulation files, plenty of guides available too.

2 Likes