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.
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.
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.
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
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:
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.
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.