# Performance Testing an API

**URL:** <https://club.ministryoftesting.com/t/performance-testing-an-api/30335>\
**Category:** Archive\
**Tags:** performance-testing\
**Created:** [23 October 2019 15:31 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335 "2019-10-23T15:31:50Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [23 October 2019 15:31 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/1 "2019-10-23T15:31:50Z")

</div>

Hi all,  
My company is introducing an API and moving away from our current process and we will also be increasing the volume of data we will be importing. in order to make sure we can handle this we need to test that our shiny new API is A) Capable of handling the increased volume and B) If not, it fails gracefully.

Example scenario:  
3rd parties submit files in a txt or csv format which we import into our system and then process, resulting in an export to either the supplier of the files, or other end users.  
We are now looking to increase this load by a factor of X, but the new volume we will be processing would be… problematic, for our existing software.  
To test this we need to verify that our API can handle the import, the processing of the raw data, and the export of the transformed data.

The main priority at the moment is to test the import function with large volumes of data across 2 separate scenarios, 1) Using the UI (Customer facing), 2) Directly to the endpoint.

Currently we use the (free) version of Postman to test the end points and make sure that they are working correctly, but now I am searching for recommendations for a product where we can test the volume going to this endpoint.

---

<div class="post-metadata">

**Author:** ![devtotest](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/devtotest/32/2857_2.png) [@devtotest](https://club.ministryoftesting.com/u/devtotest)\
**Post date:** [23 October 2019 16:54 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/2 "2019-10-23T16:54:23Z")

</div>

Hello @jp88!

We used MS Test for our API performance tests. You may want to isolate some parts of this operation. For example, if your objective is to evaluate the endpoint performance, you might mock out some of the processing. If your objective is to evaluate the processing, I recommend some consideration for dependent systems during the testing.

Joe

---

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [24 October 2019 07:58 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/3 "2019-10-24T07:58:24Z")

</div>

Thanks for the response Joe, I’ll take a look at MS Test today.

James

---

<div class="post-metadata">

**Author:** ![aviskase](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/aviskase/32/6342_2.png) [@aviskase](https://club.ministryoftesting.com/u/aviskase)\
**Post date:** [29 October 2019 00:01 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/4 "2019-10-29T00:01:21Z")

</div>

You can also look up [https://github.com/yandex/yandex-tank](https://github.com/yandex/yandex-tank)  
I didn’t use this tool extensively, but in some quick checks it proved to be powerful enough. It has a learning curve and you also need to decide which load generator to use (phantom, pandora, JMeter, or BFG).  
I’m not sure, but I think there is also some kind of UI service developed on top of it.

---

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [29 October 2019 08:31 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/5 "2019-10-29T08:31:38Z")

</div>

Thanks for the info Yuliya, I was hoping to find a completed tool, e.g. with a GUI like postman, but for the moment we’re still looking around.

I’ll take a look at the Yandex Tank and see if it meets our requirements 🙂

---

<div class="post-metadata">

**Author:** ![pcichon](https://avatars.discourse-cdn.com/v4/letter/p/5f8ce5/32.png) [@pcichon](https://club.ministryoftesting.com/u/pcichon)\
**Post date:** [29 October 2019 18:55 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/6 "2019-10-29T18:55:22Z")

</div>

I would suggest looking up JMeter:  
[https://jmeter.apache.org/](https://jmeter.apache.org/)  
Highly customizable , performance testing tool.

---

<div class="post-metadata">

**Author:** ![professorwoozle](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/professorwoozle/32/1974_2.png) [@professorwoozle](https://club.ministryoftesting.com/u/professorwoozle)\
**Post date:** [31 October 2019 09:20 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/7 "2019-10-31T09:20:01Z")

</div>

SoapUI allows you to do multi-threaded test runs, and it does handle REST as well as SOAP, I’ve used to do quick load tests in the past but I have to say I prefer Postman these days as my primary API test tool for its greater ease of use. However, you’ll probably be better off using a dedicated performance testing tool like JMeter or Gatling if you’re wanting to build performance tests into a deployment pipeline.

---

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [31 October 2019 15:02 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/8 "2019-10-31T15:02:42Z")

</div>

Thanks, Its on the list of tools I am aware of but finding the time to research to see if it fits our needs is the challenge at the moment!

---

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [31 October 2019 15:03 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/9 "2019-10-31T15:03:28Z")

</div>

I like Postman, though I dont have a lot of exp with other API testing tools tbh. Doubt that this will be a regular test run feature, though knowing my luck it might be!

---

<div class="post-metadata">

**Author:** ![priti\_testrig](https://avatars.discourse-cdn.com/v4/letter/p/edb3f5/32.png) [@priti\_testrig](https://club.ministryoftesting.com/u/priti_testrig)\
**Post date:** [4 November 2019 06:54 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/10 "2019-11-04T06:54:43Z")

</div>

Hello,

From more than 1+ years I used **Apache JMeter Tool** during application performance testing…So you can also go with this…

---

<div class="post-metadata">

**Author:** ![danggrianto](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/danggrianto/32/6452_2.png) [@danggrianto](https://club.ministryoftesting.com/u/danggrianto)\
**Post date:** [14 November 2019 14:21 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/11 "2019-11-14T14:21:03Z")

</div>

we are using [locust](https://locust.io/) for our performance testing.

---

<div class="post-metadata">

**Author:** ![jp88](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/jp88/32/4134_2.png) [@jp88](https://club.ministryoftesting.com/u/jp88)\
**Post date:** [14 November 2019 14:59 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/12 "2019-11-14T14:59:26Z")

</div>

Welcome Daniel, I’ll take a look, what are your thoughts on Locust? Do you rate it is a product and how easy is it to setup?

---

<div class="post-metadata">

**Author:** ![danggrianto](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/danggrianto/32/6452_2.png) [@danggrianto](https://club.ministryoftesting.com/u/danggrianto)\
**Post date:** [14 November 2019 15:33 UTC](https://club.ministryoftesting.com/t/performance-testing-an-api/30335/13 "2019-11-14T15:33:50Z")

</div>

Locuts is python based. It is really easy to scale and deploy since we are using docker. It can be customized to fit to your needs.
