Skip to content

Load Testing Blog

Producing JMeter Tests from OpenAPI

Swagger in conjunction with OpenAPI is a way for REST API’s to be build, documented and consumed. It is defined in either YAML or JSON. OpenAPI and Swagger are both open source, and their use is commonplace amongst development teams and can make the life of a performance tester a lot easier as it allows us to build JMeter tests directly from the definition of the endpoints.

The object of this post is to look at how we can produce JMeter tests directly from a Swagger definition. If you are unfamiliar with Swagger it is worth spending some time reading the online overview as it will provide a good understanding of how the specification works.

Now clearly in order for you to leverage the benefits of building performance tests from Swagger definitions you are going to need to have your development teams use it to describe the API contract for service they are producing, but for the purposes of this post we will use a test definition called Swagger Petstore.

Performance Testing in application Design

There are many articles on the huge benefits of performance testing integrated into the development process and the concept of shift-left performance testing.

We have also discussed the concepts of Load Test Driven Development which involves the creation of performance testing in parallel with the code development and sits alongside Test Driven Development.

We are going to consider in this post how involving performance testing resources in the application design process can be a benefit.

Soap Requests in JMeter

We are going to look at how to test SOAP Services using JMeter and some of the issues that you can face when testing these services.

We are going to provide some basic principles of SOAP in this post and while some requests can be complex in their definition and structure testing them is relatively straightforward.

The best approach to performance testing SOAP Requests is to discuss what the structure of the message is with your development teams or 3rd parties should the service be hosted external to your organisation. Fundamentally it is no different to any other HTTP Request in that you need:

  • URL of the service,
  • Payload,
  • Request Header (including any authorisation).

OctoPerf's new UI - Design changes

This article is the second in a series of overviews of our new UI. You can find the first one here.

This time we will dive into the changes we've made in the design phase. We've addressed many pain points from the old UI that we want to detail here:

This will make the design in OctoPerf even faster, so that you can focus more time on your tests and analyzing them.

Create virtual user

The first item on the list is obviously the new virtual user creation process. A lot of people were confused by the older UI and used the menus to get back to the project level when what they really wanted was to get back to the last step. Of course the fact that you are now required to click on Back / Next to move to the another step of the process requires one more interaction but it's also a lot easier to understand what's going on since it results from your actions. We think it's the right way to go since the only drawback is adding a couple of clicks on a process that is only used a few times per project.

To make things easier for beginners, the contextual documentation will display as soon as you select any option. It's also a better use of horizontal space that would otherwise be lost:

Back