How does Flood help you with your load testing, and what are some of the issues we can help you with? In this video, I talk about the three ways that Flood makes load testing easier.
Hi everyone, Nicole here again, back with another Ask a Flooder. Today's question is, "Why do I need Flood?"
This question was from a customer who was new to Flood, already had a JMeter script, and wasn't quite sure what Flood would add to his load testing. This is a question that we get quite a lot, so I thought I'd tackle it for you today.
In my view, I think Flood helps when you're load testing in three different areas: creating scripts, running the tests, and analyzing the results.
We help you create load testing scripts
Writing a load testing script without scripting experience
When you're creating a script, one of the hardest parts is that many times, customers come in, and they don't have load testers on their team, so the scripting knowledge that's required for a lot of these really robust load testing tools isn't there. We try to make it easier. While we still support full-on scripting in the traditional way, we also have tools that make it a little easier. We have, for instance, Test Builder. Test Builder runs JMeter in the background, so it has the benefit of having an output file in a tool that is very popular so that it can grow with you, and yet Test Builder is a super simple interface. There's absolutely no scripting or programming involved. You just have to put in the URLs that you want to test, and it just makes it a really easy way to step into load testing without diving into the deep end.
The second thing is that we have a qTest Explorer plugin for Flood Element. qTest is another Tricentis product, and the Explorer is basically a really nice recorder for Flood Element. [My colleague, Jason Rizio, wrote about this here.]
And the third thing is Flood Element itself. See, traditional load testing tools are protocol-level tools. That can make it difficult in pages where there are dynamic values, where you need to correlate a response from one of the previous pages and use it in your request for the succeeding pages. That's a security feature, and it's a good thing, but it also means that if you're not too used to scripting, it's going to be a lot more difficult. Browser-level tools like Element allow you to skip through that because you don't have to worry about it. You're only worried about what you need to instruct Element to click.
Those three things allow you to create test scripts way faster than you normally would.
We help you run your load tests
Provisioning identical load generators
Secondly, when you're running tests, you'll first want to make sure that every load generator that you have is identical: the same operating system, the same version of that operating system, the same version of the tools that you want. And you have to copy your load testing scripts and all your data files into each one. Flood does all of that for you. You upload once, you choose your tool, and you're guaranteed that every single node that you start with us is going to be exactly the same. The reason that's so important is that if you have a wide variety of different machines with whatever's lying around, that's really introducing a lot of variables into your test that you don't want to mess up your results. You want to leave everything the same except for the load profile. That way, you know that you can really use your load testing results to draw conclusions about your application performance.
Coordinating load test execution
Coordinating the execution between multiple machines is not always that simple. You would have to write some sort of script because you do want to start [the users] at about the same time, but not exactly the same time, because real users don't all hit a site at exactly the same time, normally. You'd want to stagger them, but that requires some communication between the users. So there's quite a lot of setup that you'd have to do to get that to happen. On Flood, it's pretty easy - you set up the ramp-up, and we make sure that everything is done for you.
Ramping up your load tests in the cloud
Thirdly, Flood allows you to run at scale in the cloud more easily. Unless you're a very big company, you probably have some sort of budget that may or may not include the provisioning and maintenance of physical machines that reside in your office. Depending on how many users you want to run, that might not be enough. Running tests on the cloud is an easy solution for that. Running on the cloud means that you can run thousands of users because we're just creating virtual machines for you on the cloud. You don't have to pay for them; you don't have to maintain them; they're automatically shut down for you after the test... it's just a very cost-effective pay-as-you-go model.
Testing from different parts of the world
And lastly for running tests, Flood also allows you to run tests in more than one geographical location. See, if your application is located within your office, for instance, and you're using tests that are running on physical machines that are also in your office on the same network, you might be seeing really fast response times. But that's not necessarily what your customers would get. If your customers are just the general public and come from different parts of your city or half across the world, depending on your load profile and the requirements of your application, that's not going to be accurately simulated just by machines on the same network. That will always be faster. You want something realistic. With Flood, this is easy to do. When you're launching a test, you just choose which regions you want to run your tests from.
We help you analyze your load test results
Collating test metrics from load generators
And the third part of your load testing that Flood can help you with is analyzing your results. If you've ever run a load test the traditional way, on physical machines, you'll know that the worst part of the test is having to collate all of those metrics from every single machine. You end up with different files, and somehow you have to write a script to merge them, and then the file size gets really big. You have to find a way to aggregate it so that it's not so big so that you can look at the entire test and not just three of the 12 load generators that you have... anyway. Sometimes it's a big deal, especially if you're running thousands of users. This is just so easy on Flood. We do all the collation for you before the virtual machines are shut down after a test. All of your results are gathered, and we display a dashboard for you already. It's already graphed; you don't have to do anything. It's just there for you after a test.
Monitoring using a real-time dashboard
And actually, it's not just there after the test. It's there in real-time. While the test is running, you can already see results coming in from every single load generator regardless of where in the world it is (if you're running in the cloud).
Sharing test results reports
There's also the shareable dashboard. There's a shareable link you can use on Flood, and it will allow you to give the results of your load test to anyone, and they don't even need a Flood account. You just send them the link, and they see the graph just as you would. They just can't run floods on your account or anything, but they see the results. That's a great way to share results among a team, across teams, or to other stakeholders. You didn't even have to write a report for it, which is always a good thing.
Spotting trends in the continuous performance view
Of course, there's always the continuous view of performance. On Flood, there's the specific flood view, but you can also see the continuous view for the entire project. If you're running a test on one particular application, you'll see all of those tests from the beginning of time, or from a time period that you select. It's just nice to see how it's trending: are response times decreasing? That's something really powerful that you can show to stakeholders to justify load testing and justify changes to the application that you'd like to make from a performance perspective.
I hope that has helped! If you do have a question and you're happy for it to be addressed publicly, feel free to leave us a comment on YouTube or send us an email at email@example.com, and you can also tweet us-- we're @flood_io. I'd be happy to answer any of your questions - and if I can't answer them, I will get someone on the Flood team who can.
Until next time, happy flooding!