API load testing for developers

API load testing that scales with you from simple API hammering to complex API user scenarios.

Performance challenges

Anticipating how resources will be manipulated as well as retrieved via an API requires skillful planning. API performance is affected by server availability, response times, network latency and throughput. Each of these require a different level of optimization work if found to be the source of poor performance.

Maintaining API performance with the increasing rate of code deployment is important to stay within boundaries of Service Level Agreements (SLAs). Load testing code before deploying it to production should not have to be hard.

Load Impact API load testing solution with CLI automation and notifications of pass/fail test results

With our solution

  • Guarantee that resources exposed by your API can be Created, Read, Updated and Deleted appropriately under expected, as well as unexpected, load.
  • Validate application and infrastructure scalability and measure end user performance.
  • Ensure the response times experienced by your API users are acceptable and within the boundaries of Service Level Agreements (SLAs).
  • Establish a long-term baseline for your API performance on which to validate the impact (good and bad) of code and infrastructure changes over time. Read more about performance trending.
  • Determine your maximum capacity, through¬†stress¬†testing, in order to understand which components fail first, in what order and what the nature of that failure is.

Powerful API scripting features

Full programming language

Use the simple yet powerful Lua programming language to create advanced scenarios that include complex flows, randomized and parameterized requests as well as HTTP basic, HTTP digest, token or NTLM based authentication.

Full CRUD support

Send requests with any of the HTTP methods/verbs. GET, POST, PUT, DELETE, PATCH, OPTION and TRACE, they are all supported.

JSON and XML APIs

Whether you are conducting SOAP or REST API load testing we got you covered, with APIs to serialize/deserialize JSON as well as XML data.

Custom metrics

Save custom metrics to aid result analysis or to setup pass/fail criteria using thresholds to open up the door for automated load testing with CI/CD tools and services.

For more information see our scripting introduction and the load script API reference documentation.

script.lua

local ds = datastore.open("users")
local row = ds:get_random()

local r = http.post{
    url="https://api.loadimpact.com/v3/account/login",
    headers={ ["Content-Type"]="application/json" },
    data=json.stringify({["email"]=row[1], ["password"]=row[2]}),
    response_body_bytes=10000
}
if r.status_code ~= 200 then
    result.custom_metric("login.failure", 1)
    if test.get_clients() == 1 then
        test.abort()
    end
end

result.custom_metric("login.time_to_first_byte", r.time_to_first_byte)

local data = json.parse(r.body)
r = http.get{
    url="https://api.loadimpact.com/v3/account/me",
    headers={ ["Authorization"]="Token "..data.token.key }
}

client.sleep(math.random(10, 20))
Postman API performance testing

Already using Postman?

Use Load Impact's conversion tool for Postman to load test your Postman API collections

Automated load testing

Automated load testing thresholds

Goal-oriented

We believe load testing should be goal-oriented and want to make it as easy as possible for you to achieve that. By setting up thresholds in your test configuration your tests will be automatically failed when those thresholds are overrun.

Automated load testing thresholds

CLI for easy integration

We also believe in the practice of continuous load testing. To that end we created a CLI that makes it easy to integrate load testing with your CI tool/service of choice.

Pass/fail notifications to Slack, HipChat and Webhook

Notifications

To stay completely out of your way, when your tests finish, we can notify you in Slack, HipChat or via Webhook. Be the first to know if your tests fail!

Check out our CI integration guides