使用 K6(负载影响)对 API 进行负载测试时的限制
Posted
技术标签:
【中文标题】使用 K6(负载影响)对 API 进行负载测试时的限制【英文标题】:Limitation when using K6 (Load impact) for load testing on APIs 【发布时间】:2018-11-06 18:51:47 【问题描述】:我通过负载影响使用 k6(OSS) 进行了一些测试,发现与 JMeter 相比,它在可用性方面非常出色
我正在做一项可行性研究,以选择一种可以帮助我进行 API 测试的负载测试工具。我倾向于使用 K6,因为我相信它对开发人员友好,但找不到关于我可以使用 K6 模拟的最大负载的建议资源。
是否可以使用 K6 模拟 100 万 rps(每秒请求数)?如果是,我应该如何实现这一目标?
【问题讨论】:
【参考方案1】:理论上,是的,如果您使用多个 k6 实例,您每秒可以实现任意数量的请求。单个 k6 实例每秒可以产生数千到数万个请求,具体取决于许多不同的因素 - 机器规格、脚本复杂性、VU、睡眠时间、网络条件等。
不过,目前 k6 还没有原生分布式执行模式,因此您必须自己安排不同的实例。有一个 REST API (https://docs.k6.io/docs/rest-api),您可以将指标输出到像 InfluxDB (https://docs.k6.io/docs/results-output) 这样的集中式收集器,但是在多台机器上执行单个测试需要一些工作。计划推出原生 k6 分布式执行模式,但尚未开始工作。
【讨论】:
【参考方案2】:您可以在负载影响 (https://loadimpact.com) 云(云执行模式)上运行 k6,以访问并行执行的多个 k6 实例。然后,如前所述,您可以每秒生成大量请求,具体 RPS 高度依赖于您的脚本和其他因素。
【讨论】:
以上是关于使用 K6(负载影响)对 API 进行负载测试时的限制的主要内容,如果未能解决你的问题,请参考以下文章