Abstract
Application Programming Interfaces (APIs) are available in virtually every programming language. These interfaces make it easier to develop software by simplifying complex code into a more straightforward, manageable structure. APIs provide a standardized interface that allows different applications to communicate and connect easily, streamlining the software development process and making it more efficient and effective. Performance testing of a web API refers to evaluating the performance characteristics of an API accessible via the web. This process involves analyzing performance aspects such as response time, reliability, scalability, and resource utilization. This work defines a test battery using specific open-source tools to assess Web API performance. The tests used are load, stress, spike, and soak tests replicating various scenarios of the volume of users accessing the service or simulating a denial-of-service attack. These tests aim to determine how well an API can manage a substantial volume of traffic and transactions while upholding satisfactory performance standards. Applying Web API performance testing will also enable organizations to implement suitable measures for enhancing performance and guaranteeing smooth user interaction, pinpointing bottlenecks, constraints, or prospective problems in the API’s architecture and execution. These tests can also demonstrate the technology’s limitations and benchmarking, helping determine a more suitable production platform.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Hong, X.J., Yang, H.S., Kim, Y.H.: Performance analysis of restful API and RabbitMQ for microservice web application. In: 2018 International Conference on Information and Communication Technology Convergence (ICTC), Jeju, Korea (South), pp. 257–259 (2018). https://doi.org/10.1109/ICTC.2018.8539409
Fielding, R.T.: Architectural Styles and the Design of Network-Based Software Architectures. University of California (2000)
Karlsson, O.: A Performance comparison Between ASP. NET Core and Express. js for creating Web APIs. [Dissertation] (2021). http://urn.kb.se/resolve?urn=urn:nbn:se:hj:diva-54286
Voskoglou, C.: APIs Have Taken over Software Development: Nordic Apis |. Nordic APIs, 20 October 2020. https://nordicapis.com/apis-have-taken-over-software-development/
Bermbach, D., Wittern, E.: Benchmarking web API quality. In: Bozzon, A., Cudre-Maroux, P., Pautasso, C. (eds.) ICWE 2016. LNCS, vol. 9671, pp. 188–206. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-38791-8_11
Kronis, K., Uhanova, M.: Performance comparison of Java EE and ASP. NET core technologies for web API development. Appl. Comput. Syst. 23(1), 37–44 (2018)
Karlsson, O.: A Performance comparison between ASP. NET Core and Express. js for creating Web APIs (2021)
Rathod, D.: Performance evaluation of restful web services and soap/wsdl web services. Int. J. Adv. Res. Comput. Sci. 8(7), 415–420 (2017)
Akbulut, A., Perros, H.G.: Performance analysis of microservice design patterns. IEEE Internet Comput. 23(6), 19–27 (2019)
El Malki, A., Zdun, U.: Combining API Patterns in Microservice Architectures: Performance and Reliability Analysis (2023)
Geewax, J.J.: API design patterns. Simon and Schuster (2021)
Maleshkova, M., Pedrinaci, C., Domingue, J.: Investigating web APIs on the world wide web. In: 2010 Eighth IEEE European Conference on Web Services, Ayia Napa, Cyprus, pp. 107–114 (2010). https://doi.org/10.1109/ECOWS.2010.9
Vainikka, J.: Full-stack web development using Django REST framework and React (2018)
Richardson, L., Amundsen, M., Ruby, S.: RESTful Web APIs: Services for a Changing World. O’Reilly Media, Inc., Sebastopol (2013)
Ong, S.P., et al.: The materials application programming interface (API): a simple, flexible and efficient API for materials data based on representational state transfer (REST) principles. Comput. Mater. Sci. 97, 209–215 (2015)
Neumann, A., Laranjeiro, N., Bernardino, J.: An analysis of public REST web service APIs. IEEE Trans. Serv. Comput. 14(4), 957–970 (2018)
Halili, F., Ramadani, E.: Web services: a comparison of soap and rest services. Mod. Appl. Sci. 12(3), 175 (2018)
Sohan, S.M., Anslow, C., Maurer, F.: A case study of web API evolution. In: 2015 IEEE World Congress on Services. IEEE (2015)
Archip, A., Amarandei, C.M., Herghelegiu, P.C., Mironeanu, C.: RESTful web services-a question of standards. In: 2018 22nd International Conference on System Theory, Control and Computing (ICSTCC), pp. 677–682. IEEE, October 2018
Noura, M., Atiquzzaman, M., Gaedke, M.: Interoperability in internet of things: taxonomies and open challenges. Mob. Netw. Appl. 24, 796–809 (2019)
Michel, F., Faron-Zucker, C., Corby, O., Gandon, F.: Enabling automatic discovery and querying of web APIs at web scale using linked data standards. In: Companion Proceedings of the 2019 World Wide Web Conference, pp. 883–892, May 2019
Ozdemir, E.: A general overview of RESTful web services. Applications and approaches to object-oriented software design: emerging research and opportunities, pp. 133–165 (2020)
Coarfa, C., Druschel, P., Wallach, D.S.: Performance analysis of TLS web servers. ACM Trans. Comput. Syst. (TOCS) 24(1), 39–69 (2006)
Chakraborty, M., Kundan, A.P.: Grafana. Monitoring Cloud-Native Applications, pp. 187–240. Apress, Berkeley, CA (2021)
Dogan, J.: RAKYLL/Hey: HTTP Load Generator, ApacheBench (AB) Replacement. GitHub, Rakyll. https://github.com/rakyll/hey/
Deliver Fast and Reliable Digital Experiences with K6. k6, K6 Grafana Labs. https://k6.io/deliver-fast-and-reliable-digital-experiences-with-k6/
Khan, R., Amjad, M.: Web application’s performance testing using HP LoadRunner and CA Wily introscope tools. In: 2016 International Conference on Computing, Communication and Automation (ICCCA), Greater Noida, India, pp. 802–806 (2016). https://doi.org/10.1109/CCAA.2016.7813849
Harrold, M.J.: Testing: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering (2000)
Jiang, Z.M., Hassan, A.E.: A survey on load testing of large-scale software systems. IEEE Trans. Softw. Eng. 41(11), 1091–1118 (2015). https://doi.org/10.1109/TSE.2015.2445340
Apache MPM Common Directives. mpm_common - Apache HTTP Server Version 2.4, The Apache Software Foundation. https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
NGINX - Core Functionality. NGINX. http://nginx.org/en/docs/ngx_core_module.html#worker_connections
Malik, H., Jiang, Z.M., Adams, B., Hassan, A.E., Flora, P., Hamann, G.: Automatic comparison of load tests to support the performance analysis of large enterprise systems. In: 2010 14th European Conference on Software Maintenance and Reengineering, Madrid, Spain, pp. 222–231 (2010). https://doi.org/10.1109/CSMR.2010.39
Malik, H., Hemmati, H., Hassan, A.E.: Automatic detection of performance deviations in the load testing of large scale systems. In: 2013 35th International Conference on Software Engineering (ICSE). IEEE (2013)
Hasanpuri, V., Diwaker, C.: Comparative analysis of techniques for big-data performance testing. In: 2022 Seventh International Conference on Parallel, Distributed and Grid Computing (PDGC). IEEE (2022)
Acknowledgements
This work is funded by FCT/MEC through national funds and co-funded by FEDER—PT2020 partnership agreement under the project UIDB/50008/2020. This work is partially funded by National Funds through the FCT - Foundation for Science and Technology, I.P., within the scope of the projects UIDB/00308/2020, UIDB/05583/2020 and MANaGER (POCI-01-0145-FEDER-028040). Furthermore, we would like to thank the Polytechnics of Coimbra and Santarém for their support.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 ICST Institute for Computer Sciences, Social Informatics and Telecommunications Engineering
About this paper
Cite this paper
Godinho, A., Rosado, J., Sá, F., Cardoso, F. (2024). Method for Evaluating the Performance of Web-Based APIs. In: Coelho, P.J., Pires, I.M., Lopes, N.V. (eds) Smart Objects and Technologies for Social Good. GOODTECHS 2023. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 556. Springer, Cham. https://doi.org/10.1007/978-3-031-52524-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-52524-7_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-52523-0
Online ISBN: 978-3-031-52524-7
eBook Packages: Computer ScienceComputer Science (R0)