根据关键用户流定义负载测试
负载测试是持续验证的重要组成部分。 若要开始,需要识别应用程序流。 在本单元中,你将了解用户流和系统流、其重要的原因,以及测试的设计标准。
什么是应用程序流?
流由完成任务所需的应用程序交互组成。
用户流
这些流指示用户如何与应用程序交互。 在 Contoso Shoes 场景中,购买商品的结帐流程是用户流的一个示例。 它具有参与库存管理的以下组件:
- 前端 Web 应用程序
- Azure Functions 中的签出逻辑
- Azure Cosmos DB 中的后端数据库
从任务关键型角度来看,这些组件需要高度可用且可从故障中复原。 例如,前端网页需要快速加载,因为组织可能有大量并发用户。
系统流
这些流通常不面向用户,但系统流组件的中断或降级可能会影响用户体验。 例如,系统流可以是从数据库提取订单并生成发货标签的异步活动。
注意
大多数应用程序都有多个流。 每个流均可接触体系结构的各个组件。 此外,一个组件可出现在多个流中。 组件发生故障时,了解受影响的流非常重要。
定义负载测试及其阈值
负载测试模拟实际流量,以测试应用程序的性能。 但是,目标并不是生成大负载来中断系统。 该目标可以通过压力测试实现。
负载测试有助于确定用户流组件的性能、性能限制、资源利用率和最佳缩放行为。 负载测试应反映每个相关的用户流和系统流。 良好的设计需要了解应用程序。 首先提出问题,例如:
- 需要调用哪些 API?
- API 调用的顺序是什么?
- API 调用应使用哪些测试数据?
根据答案:
确定关键场景和依赖项,并为预期使用情况、可用性、性能和可伸缩性设置目标目标。
定义一组可测量的阈值以量化关键方案的预期性能。 例如,对于应用程序组件,可以考虑预期用户登录数、API 每秒请求数和后台进程每秒操作数的阈值。
使用阈值定义负载测试,以生成实际流量用于测试应用程序性能、验证预期的缩放操作和相关活动。 使用这些阈值为应用程序开发涵盖测试和生产的运行状况模型。
在结帐流程流示例中,可以将每一步的平均页面加载持续时间的阈值设置为小于 500 毫秒,并最多支持 100 位并发用户。
定义所有阈值后,可以实现负载测试。 本模块使用 Azure 负载测试。
尽管可以通过 Azure 门户配置和部署 Azure 负载测试,但强烈建议使用编程方法。 使用 API 以自动化方式部署、配置和运行测试。 下一单元将讨论此方法。