API Performance Testing for Networking
2021-04-30 | 5 min read
Yes, you read that right! You are thinking APIs (Application Programming Interfaces) are more synonymous with applications and developers. And CLIs (Command Line Interfaces) are what you think of for networking and device configurations. However, as modern networks become increasingly disaggregated and distributed and require connectivity and policy enforcement across heterogeneous domains, the management and deployment of these networks are also being overhauled. This is where APIs become key to managing large-scale, distributed systems, cloud-native, and service-based architectures for networking.
APIs deliver a more efficient and scalable approach to network orchestration and automation than the very human, incredibly manual CLI approach that is struggling to keep pace with the rate of change. Automation using APIs can make hundreds or even thousands of network changes in a small window of time versus the labor-intensive, highly manual CLI.
Network equipment manufacturers (NEMs) enabling modern software-defined and intent-based networks are building their solution with APIs and web-based fronts ends to control and manage their networking appliances and services for on-premises and cloud deployments, and even offering it as software as a service (SaaS) solutions. The adoption and success of these solutions within enterprises and service providers will rely heavily on API scalability and performance as they integrate with and manage complex networks.
Why API Performance Testing?
When APIs are the windows into your solutions, you need to ensure that they are delivering the right user experience. Most vendors ensure their APIs are functional and perform the intended action. However, what many fail to ensure is how the APIs will perform at scale in real-world conditions such as API response time when the network, packet forwarding, or session handling load is high. Or how will the API server handles concurrent calls or multi-tenanted deployments under load.
API performance testing for networking solutions is about creating production-level API load simulation in conjunction with production-level network traffic load simulation. This will ensure your solution can be managed effectively and respond to API calls in a timely manner while under high load and resource utilization.
How do you do API performance testing?
Keysight’s recently acquired Eggplant Performance Test Solution combined with its Network Traffic Generation solutions provides a holistic approach to validating API scale and user experience. The Eggplant Performance Studio application will generate API request traffic from software injectors. Injectors are physical, virtual machines or cloud instances (hosted and on-prem) that generate targeted API workloads at the system under test (SUT).
Figure 1: Eggplant Performance Studio (Test Controller) and Injector software interactions
Here are 5 quick steps to get you started:
- Start the Eggplant Performance Studio application
- Define your API service as either a website or by importing your OpenAPI specification YAML or JSON file. Here we have defined a simple “Statistics Request” API call.
3. Define your test by configuring the test parameters such as 1) number of virtual users (simulated users accessing API service), 2) which injectors are being used and 3) how long the test will run.
4. Validate real-time statistics during the test runtime in the Eggplant Performance Test Controller. You can also configure statistics from a SUT to see how API response times change under peak load.
5.Conduct the Eggplant API Performance test in conjunction with IxNetwork, IxLoad, or BreakingPoint to stress the networking solution’s packet forwarding, session handling, or security performance and validate the impact of production network load on API user experience.
For more details on Eggplant Performance solution capabilities please refer to this brochure.