由于高传入流量导致Web 应用程序失败的案例很多。这些主要是由于系统复杂、测试不充分、对系统依赖性了解不足、系统过载、资源耗尽以及复杂的故障恢复例程。
我们可以采取必要的步骤来避免故障,并通过执行性能测试更好地了解应用程序的局限性。
性能测试(PT)有助于确定系统和应用程序在预期负载下的限制。它还有助于微调应用程序,以确保应用程序稳定、可扩展,并在最佳资源利用率下始终如一地执行。
性能测试是应用程序生命周期中非常重要的一个方面。当正确进行 PT 时,它会考虑响应时间、可扩展性、停机时间、基础设施成本等因素,确保应用程序在最佳条件下运行。 PT 将有助于早期发现瓶颈并使团队修复它们。
应用程序的 PT 是多方面的,但可以大致分为 API 测试和应用程序测试两种类型。
1.API 测试-用于测量响应时间,分析托管和支持应用程序的基础架构。
2.应用程序测试-测试应用程序对其安装的设备的影响。例如,考虑一个旨在在 iOS 或 Android 设备上使用的应用程序。需要完成完整的应用程序测试,以确保安装此应用程序不会降低设备的整体性能(例如电池消耗、系统频繁挂起)。
在本文中,我将讨论 API 性能测试的重要性和不同方面。
我们将使用以下工具:
- Apache JMeter 用于 API 性能测试
- AWS EC2 用于托管我们的应用程序
- 数据库- MongoDB Atlas
API 性能测试的重要性
- 维护一致的应用程序性能和应用程序的可扩展性
- 帮助开发团队解决性能问题,并在用户基数增加时按需提供正确的资源
- 识别热点(慢速 API、内存泄漏)
- 帮助财务团队决定基础设施,注意预计的用户量
- 根据应用程序的类型和目标用户群,应用程序应该在不需要过多延迟的情况下提供请求,并保证绝对零停机时间。(特别是当应用程序新进入市场时,这可以在用户接受应用程序方面发挥重要作用。
- 在发布应用程序之前进行 PT 有助于维持用户并提供良好的用户体验。 PT 在应用程序生命周期中有助于通过确保应用程序稳定性来保留用户。
在进行API性能测试之前需要考虑以下几点:
- 通过模拟实时预期数据进行测试;
- 考虑应用程序特定功能的使用频率和预期用户数;
- 考虑服务器部署的地理位置以及负载测试的执行地点。
这些因素对我们的应用程序性能有重要影响。
模拟数据
使用符合实时预期数据的测试数据有助于验证API功能和性能。通过使用Postman工作流和集合运行器功能,可以模拟实际应用程序流程,并使用脚本创建要测试的功能的负载。
例如,如果一个API将所有已注册用户列出,并且页面大小限制为100,则需要创建至少100个已注册用户的负载来测试此API。 如果没有或负载较小,则PT将不会有效。 即使生成了不现实的数据集,也无法使PT有效,因为解决此类数据集的问题会导致分配额外的资源,从而增加部署成本。