我根据负载影响使用 k6(OSS) 进行了一些测试,发现与 JMeter 相比,它在可用性方面非常出色
我正在进行可行性研究,以选择一个可以帮助我进行 API 测试的负载测试工具。我倾向于使用 K6,因为我相信它对开发人员友好,但找不到资源来建议我可以使用 K6 模拟的最大负载。
使用K6是否可以模拟100万个rps(每秒请求数)?如果是,我应该如何实现这一目标?
理论上是的,如果您使用多个 k6 实例,您可以实现每秒任意数量的请求。单个 k6 实例每秒可以产生数千到数万个请求,具体取决于许多不同的因素 - 机器规格、脚本复杂性、VU、睡眠时间、网络条件等。
目前 k6 没有原生分布式执行模式,因此您必须自己安排不同的实例。有一个 REST API (https://docs.k6.io/docs/rest-api),您可以将指标输出到像 InfluxDB 这样的集中式收集器 (https://docs.k6.io/docs/results-输出),但在多台机器上执行单个测试需要一些工作。计划原生 k6 分布式执行模式,但尚未开始工作。
您可以在 Load Impact (https://loadimpact.com) 云(云执行模式)上运行 k6,以访问并行执行的多个 k6 实例。然后,如前所述,您可以每秒生成大量请求,具体 RPS 高度依赖于您的脚本和其他因素。
是的,您可以使用 K6 模拟大量的 RPS(每秒请求数)。但正如 @na-- 提到的,这在很大程度上取决于许多因素。
我们使用了 k6-operator,它基本上是一个 Kubernetest 运算符,允许您在 k8s 上运行分布式测试。这样您就可以让多个 pod 以分布式方式运行相同的测试。
查看此链接以获取更多信息:https://github.com/grafana/k6-operator