In SmartBear's August 2017 customer survey, our customers told us that performance is a better measurement to determine API success than a usage metric, like the number of subscribers. Of course we need to provide our customers the right functionality but in the end, performance matters.
61% of our survey respondents claimed to be load testing their APIs. From countless conversations with your peers, I believe that number would be much higher with a few guiding principles.
A great place to start is building your API with a performance SLA in mind. This is equally important for internal or externally facing APIs, as well as services that applications sit on top of. What is an appropriate response time for customers of your APIs? Those APIs may be buried under layers of technology that also add precious milliseconds to the overall user experience. If my guitar tab application is making a call for the audio file location, calling for chord definitions, and at the same time calling for the song tab I should ensure I am testing performance of each of those components and understanding their overall impact on the application as well as the bottlenecks each service has.
We need to treat our APIs as first-class citizens and test our applications all the way from the front end user experience, through all of the services that are being called in our technology stack. Don't forget about the impact of those pesky 3rd party calls either. It's important to understand where the bottlenecks exist so that you can plan for peak traffic or normal traffic patterns. What if your chord definitions are spiking the CPU well above the CPU utilization for a tabs call. The chord definition API may need to have caching enabled, or memory optimizations applied.
Additionally, are you testing based on what your real end users are doing? For example, if your guitar tab API traffic is mostly users retrieving tabs to display, it wouldn't make sense to load test the add tab functionality at half of your load test. If your API is being leveraged a certain way, so should your API load test in order to closely mimic reality.