

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 可用工具
<a name="tools"></a>

## k6
<a name="k6"></a>

[k6](https://k6.io/) 是一款免费工具，可提供支持、负载源的托管以及用于组织、运行和分析负载测试的集成 Web 界面。

k6 是用 Go 编写的，并作为单个可执行文件发布。它将使用源系统的所有核心。它使用的一个子集 JavaScript 来运行复杂的场景，还包括测试配置文件。您可以在其中创建高效运行 JavaScript 的复杂测试场景。输出可以是摘要，也可以是多个目标存储的详细输出。支持扩展，但是除了官方的 k6 扩展之外，几乎没有维护良好的扩展。

如果服务器足够大，大多数负载测试可以在单个服务器上运行，这样可以避免更复杂的分布式负载测试。

负载测试结果可以转发给 [Prometheus 的亚马逊托管服务、[ CloudWatch亚马逊](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)或其他监控](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)服务，以进行更详细的分析。还可以在场景代码中包含成功标准，以便在持续集成（CI）管道中运行。

## Vegeta
<a name="vegeta"></a>

[Vegeta](https://github.com/tsenart/vegeta) 负载测试遵循不同的概念。您无需定义并发性或向系统施加负载，而是定义一定的速率。然后，该工具会创建独立于系统响应时间的负载。

这是一种探索后端进程反向压力场景或长期行为的有效方式，在这种情况下，您希望消除响应时间和测试的影响。该工具无法执行复杂的行为，但您可以运行任何不需要在它们之间传递信息的请求序列。

Vegeta 也可以用作 Go 应用程序库。这样，您可以使用强大的后端实现自己的负载测试。尽管使用其他工具可能比实现自己的测试更有意义。

## Hey 和 ab
<a name="hey-ab"></a>

[Hey](https://github.com/rakyll/hey) 和 [ab](https://httpd.apache.org/docs/2.4/programs/ab.html)（Apache HTTP 服务器基准测试工具）是基本工具，可从命令行使用它们在单个端点上运行指定负载。如果您有服务器可以运行这些工具，这是生成负载最快的方法。即使是本地笔记本电脑也能运行，尽管它可能不够强大，无法产生高负载。

## Apache JMeter
<a name="apache-jmeter"></a>

[Apache JMeter](https://jmeter.apache.org/) 是经验丰富的强者。多年来，Apache JMeter 变得更加可靠，并增加了功能。利用图形界面，您无需掌握编程语言即可创建复杂的测试。诸如此类的公司都 BlazeMeter 支持 Apache JMeter。

## 分布式负载测试已开启 AWS
<a name="distributed-load-testing-on-aws"></a>

[AWS 解决方案上的分布式负载测试](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/)支持使用自定义 Apache JMeter 脚本。在 AWS 解决方案上使用分布式负载测试时，您可以上传您的 Apache JMeter 脚本以在云中运行测试。另一个好处是输出支持。您可以将事件流式传输到时间流数据库，在顶部运行高级查询，从而深入了解完整的测试运行。要使用此工具，[请在 AWS 控制台中启动模板](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?&templateURL=https://solutions-reference.s3.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws.template&redirectId=PrescriptiveGuidance)。

## 炮兵
<a name="artillery"></a>

火炮提供了新的云定制功能。Aterler AWS 账户 y 的突出功能之一是能够使用无服务器架构（例如 AWS Lambda 函数（容器模式）和。 AWS Fargate这种无服务器方法无需管理专用基础架构，为负载测试提供了高度可扩展且经济实惠的解决方案。

炮兵还具有内置的自动化功能，用于配置和削减执行测试所需的资源。与传统工具不同，无需编写基础设施即代码 (IaC) 脚本或手动管理云资源。Arterly 可以处理所有事情，这使其成为现代云原生应用程序的高效且对开发人员友好的选择。

最后，炮兵支持与现有持续集成和交付 (CI/CD) 管道集成的 GitHub 行动。