Microservices & API

Neotys is continually improving the NeoLoad performance testing platform with advanced automation that enables faster performance testing cycles with greater confidence without compromise, for higher application quality. This relentless drive towards optimized application performance is behind the strategic shift toward Microservices Architecture testing, API testing, and component-level testing.

Understanding Microservices Architecture

Microservices Architecture (“microservices”) breaks down complex tasks into smaller processes that operate independently and communicate through language-agnostic APIs. These processes are modular and can be deployed independently. Communications between Microservices is through a defined method or set of methods to deliver a specific capability or achieve a business goal.

  • Microservices can be broken down into multiple component services, each of which can be created, tested and deployed without impacting other services or breaking the overall operational integrity of the application of which it is part
  • Microservices are set up to deliver a specific capability or set of capabilities to the business, by using cross-functional teams rather than handing off to specialist teams (e.g., database, network infrastructure, server) for related services

NeoLoad Meets the Performance Testing Challenges of Microservices Architectures

Because of the nature of microservices architectures, a robust load testing plan requires some work to characterize “real world” usage scenarios, to confirm proper operation and continued availability under heavy load or in the face of resource failure. To test as soon as possible in the SDLC, even before a GUI exists.

  • At their most basic level, microservices receive requests, process them, and generate a response; NeoLoad excels at this
  • NeoLoad allows you to define custom protocols and actions, record and replay transactions and user paths, and re-use scripts to do comprehensive performance analysis across the SDLC
  • NeoLoad is flexible enough to be able to generate traffic with specific protocols as required by the microservices under test
  • Since Web APIs are not always available for internal microservices, NeoLoad allows you to define custom actions and protocols as required
  • Specific messaging protocols (e.g., JMS, MQTT, KAFKA, MQ Series, ProtoBuf) or database protocols (e.g., SQL load generation) can be defined to test specific microservices

Understand the Load Performance and Scalability of APIs

Application Programming Interfaces (APIs) are central to modern data-driven applications and are becoming even more so. At the same time, Representational State Transfer (REST) has become more popular than ever, especially for popular Web-based applications (Twitter, Google, Flickr, and many others) that use REST APIs. The emergence of RESTful API frameworks like Swagger, which integrate with NeoLoad, makes API testing with NeoLoad faster than ever.

  • Testing web services and APIs is critical to producing quality software that is robust and performs well under real-world load scenarios
  • Many aspects of API testing are similar to traditional end-to-end load testing
  • Since there is no GUI involved, there are some special considerations

API Testing – More Important than Ever to Your Business

Including API tests improve the overall quality and coverage of performance testing.

  • NeoLoad can help characterize API load behavior early in the SDLC when performance issues are far cheaper and easier to address
  • Gain insight into user experience even before a GUI is developed
  • Simulate global traffic from the Neotys cloud to develop realistic load scenarios to visualize the impact of full-scale loads using virtual users. Choose from over 70 on-demand locations from 7 different providers

The Role of Test Automation in CI

DevOps testing and development teams are moving towards API test automation and integrating their testing tools with CI frameworks like Jenkins. NeoLoad supports developers and testers with integrations to the most popular CI tools using out-of-the-box CI plugins (available from the Download Center) for Jenkins, TeamCity, and Bamboo.

Automate for Continuous Integration Testing

  • Run automatically from Continuous Integration systems
  • Command line interface execution

Testing APIs with NeoLoad

NeoLoad provides SOAP/Web Services support with options for REST and API testing plus the ability to test all web and mobile applications. It means that you can use NeoLoad throughout the development lifecycle even before you have a UI, and reuse those assets later on when the app is more stable.
You can generate SOAP requests using WSDL descriptor files. It gives the ability to test the server before the client is ready since you don’t need to record the traffic to be played back.

RESTful Web Services Testing

NeoLoad allows you to test RESTful web services thanks to:

  • Native support of all HTTP Methods: GET, POST, PUT, DELETE HEAD, OPTIONS
  • Native support for XML and JSON requests and responses for extracting data from responses, validating data or injecting values