根据关键用户流定义负载测试

已完成

负载测试是持续验证的重要组成部分。 若要开始,需要识别应用程序流。 在本单元中,你将了解用户流和系统流、其重要的原因,以及测试的设计标准。

什么是应用程序流?

流由完成任务所需的应用程序交互组成。

  • 用户流

    这些流指示用户如何与应用程序交互。 在 Contoso Shoes 场景中,购买商品的结帐流程是用户流的一个示例。 它具有参与库存管理的以下组件:

    • 前端 Web 应用程序
    • Azure Functions 中的签出逻辑
    • Azure Cosmos DB 中的后端数据库

    从任务关键型角度来看,这些组件需要高度可用且可从故障中复原。 例如,前端网页需要快速加载,因为组织可能有大量并发用户。

  • 系统流

    这些流通常不面向用户,但系统流组件的中断或降级可能会影响用户体验。 例如,系统流可以是从数据库提取订单并生成发货标签的异步活动。

注意

大多数应用程序都有多个流。 每个流均可接触体系结构的各个组件。 此外,一个组件可出现在多个流中。 组件发生故障时,了解受影响的流非常重要。

定义负载测试及其阈值

负载测试模拟实际流量,以测试应用程序的性能。 但是,目标并不是生成大负载来中断系统。 该目标可以通过压力测试实现。

负载测试有助于确定用户流组件的性能、性能限制、资源利用率和最佳缩放行为。 负载测试应反映每个相关的用户流和系统流。 良好的设计需要了解应用程序。 首先提出问题,例如:

  • 需要调用哪些 API?
  • API 调用的顺序是什么?
  • API 调用应使用哪些测试数据?

根据答案:

  1. 确定关键场景和依赖项,并为预期使用情况、可用性、性能和可伸缩性设置目标目标。

  2. 定义一组可测量的阈值以量化关键方案的预期性能。 例如,对于应用程序组件,可以考虑预期用户登录数、API 每秒请求数和后台进程每秒操作数的阈值。

  3. 使用阈值定义负载测试,以生成实际流量用于测试应用程序性能、验证预期的缩放操作和相关活动。 使用这些阈值为应用程序开发涵盖测试和生产的运行状况模型。

    在结帐流程流示例中,可以将每一步的平均页面加载持续时间的阈值设置为小于 500 毫秒,并最多支持 100 位并发用户。

定义所有阈值后,可以实现负载测试。 本模块使用 Azure 负载测试

尽管可以通过 Azure 门户配置和部署 Azure 负载测试,但强烈建议使用编程方法。 使用 API 以自动化方式部署、配置和运行测试。 下一单元将讨论此方法。

知识检查

1.

所有用户流和系统流是否都同样重要?

2.

组件中断是否始终会导致服务降级?

3.

负载测试是否可帮助评估用户流的预期性能?