1. If You Build It, They Will Come: Set Up A Full Testing Environment
Remember when we talked about the possibility that Amazon was actually dogfooding during their #PrimeDayFail? If that is true, it’s not recommended. Whenever performing testing, you want to set up a testing, pre-production or sandboxed environment. You wouldn’t want to risk things collapsing in a live production environment, would you?
Sometimes called clone load testing, this is done by making a full copy of everything you have running on and integrating with your code. This works well if you don’t integrate with a lot of other apps or if you do and can handle the pay-per-call (PPC) cost of pulling from and pushing to them.
This is your most realistic testing environment, without risking reality, but, besides that pesky PPC, it has some other downsides. This can take up a lot of CPU usage on its own because you need to reload each time to send and retrieve stateful data. Also, depending on your customers and your compliance restrictions, it can risk sharing sensitive data and privacy restrictions. It's also crucial you know how to set up an environment correctly.
2. Fake It Til You Make It: Mock Your API
This is common especially when your API isn’t released yet or when you are going to release some updates that might lead to a massive spike in traffic or a slowed latency that you want to prepare for.
Mocking up your API is really only good in the earliest stages of development, when you are just trying to check basic stability. Since you don’t have real data yet, they are rather like the first mock-up of a website — a rough sketch that most likely won’t represent reality in the end. API mocking is an interesting way to just play around with your API early on but it’s simply not the best way to test your API’s performance.
3. Gambling Your API: Testing It Live
This is an approach where teams — who are often trying to cut corners with testing in general — will save time by testing right in their production environments. Yes it does save time and, in the short-term, money, but it’s risky! The best way to do this is if you actually warn your users ahead that you will be out-of-use for a couple hours, but then you are going to be risking current customers.
Plus, more worrisome, what if you corrupt or crash your production server? Expose customer data? Risk the security or stability of your whole API? So while this is still a pretty popular path — that does have very realistic results — it’s not one we’d recommend.
4. Talk About Augmented Reality: Try API Virtualization
API virtualization takes things to a whole new level past cloning. This preferred option allows you to test your actual API in an environment where you’re able to control each load variable. A virtual API is like a mock, but on steroids. This allows you to isolate each variable in your experiment, including:
- Environmental loads on network bandwidth
- Server connections
- Database connections
- Simultaneous users
You get the results that you can get from clone load testing, but without the ache of having to set up a whole duplicate production environment. You can create your own requests or clone and run the actual requests and responses your API receives every day.
With API virtualization, you can even control the speed of the requests. Heck, you can even simulate the other external APIs you are linking to so you don’t have to payper-call for them either. Spike testing helps you check how the tested API With this opportunity, it takes the least amount of work to safely isolate and test different aspects of your API.
And, of course, like all proper load testing, if done correctly, API virtualization allows you to catch and fix issues before it all hits the fan when your customers catch it first!
Load Testing Requires the Right Tools
As you get started with your load testing, SmartBear has the tools you need to ensure that your APIs perform flawlessly under various traffic conditions. ReadyAPI is the industry’s leading API load testing tool that is great for beginners, because it’s scriptless and allows for easy reuse of your functional API tests from ReadyAPI.
ReadyAPI allows you to quickly get started and:
- Save time & resources by building load tests from pre-configured templates in just a few clicks
- Create real-life traffic patterns from servers ‘on premise’ or in the cloud
- Understand server performance by visualizing the effects of load on your servers with real-time monitoring
- Quickly analyze results by collecting advanced performance metrics for your load test runs and benchmarking them against past tests
- Reuse your existing functional test cases from ReadyAPI for increased efficiency