
BY Rajeev Ramani 30 August 2018
Here at TelstraDev, we strive to make the best possible developer experience, from the recent redesign of our developer docs to our upcoming credit card payment option release. This focus on developer experience is critical, especially when demand starts to scale and platform performance needs to be maintained with increasing workloads placing stress on server-side processes and functions.
One area that we have recently tuned is our Messaging API, more specifically MMS performance. The goal was to measure the throughputs we could support through the API and to iteratively re-engineer our server-side functions to increase our capacity to meet our customer's needs.
We worked closely with our customers to understand their:
- Use cases
- Payload Size
- MMS file Types
- Throughput requirements
- Peak traffic time
Based on the customer feedback and analytics data we designed and developed the required test cases.
Tools
Performance testing used to be an art form. People had specialized skills to design, build, run, collate and generate reports. Fortunately, current tools (abstractions) make that process a lot easier. We used a combination of Jmeter and Redline services for testing purposes. These are two awesome tools that really ease the pain for distributed performance testing. Another useful tool is Blazemeter.
Test
The shape and size of the payload were set up to replicate what our customers typically send through the API, some samples were provided by the customers to ensure we were testing a real use-case. On Jmeter we set up the test for 35 Threads for 15 mins with unlimited loops. We chose this number based on discussions with customers and our own analytics data. The ramp up time was set to 1. These tests were run during normal business hours to ensure we stress tested our production systems as well. The (multiple) simulations were run based on customer usage patterns.
Summary
The results speak for themselves. The images and tables below show some of the outcomes from the test.
Measure |
Result |
|
MMS Payload |
350KB |
|
Error rate |
1.43% |
|
Ave response time |
824ms |
|
Throughput |
42 / sec |
|
Total MMS sent |
38,130 |
|
Test duration |
15min |
Transactions per second
Response times
Thanks
We would like to thank our customers especially MobileDigital for their help and support during the testing. This may look easy but it takes a lot of teamwork between support, API and backend teams to ensure that the platform is stable during the tests and regular customers are not affected.
Feedback
If you have any questions or comments please do send those to telstradev@team.telstra.com. We would love to hear back from you on your experience of TelstraDev. You can also visit and register at https://dev.telstra.com.
.on-the-fly-class-example { margin-left: 0px; } @media (max-width: 767px) { .on-the-fly-class-example { margin-left: 0px; } }