问题标签 [k6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4393 浏览

load-testing - 达到更多虚拟用户时 k6 显示的错误

我正在评估 k6 以满足我的负载测试需求。我已经设置了一个基本的负载测试,我目前正在尝试解释我得到的错误消息和结果值。也许有人可以帮我解释我所看到的:

如果我将 VUS 提高到 300 左右,我开始在控制台中看到错误消息,并且出现 500 多条错误消息。

这些主要包括:

  • dial tcp XXX:443: i/o timeout
  • read tcp YYY(local ip):35252->XXX(host ip):443: read: connection reset by peer
  • level=warning msg="请求失败" error="unexpected EOF"
  • 获取https://REQUEST_URL/:超出上下文期限”

我也有几个检查的问题:

  • 检查 res.status === 0 和 res.body === null 的错误
  • 检查 res.status === 0 的错误,但正文包含正确的内容

怎么可能res.status是 0 但正文仍然包含正确的值?

我怀疑我已达到负载生产机器的连接限制,这就是我收到错误消息的原因。所以我必须建立一个集群或转移到 Cloud runners!?

k6 生成的统计数据显示长http_req_blocked值,我将其解释为等待获取连接端口的时间。这似乎表明我的测试运行机器的连接池已达到极限。

谁能帮我解释我看到的结果?

0 投票
1 回答
1211 浏览

javascript - k6 中的 sleep 功能是暂停所有虚拟用户的执行还是一次只暂停一个用户的执行?

我是使用https://k6.io进行负载测试的新手,并且想知道该sleep函数的行为。

现在我已经建立了一个多阶段的负载测试。在我的默认函数中,我有许多被执行的请求(get 和 post)。

我注意到,如果我只是按顺序执行几分钟,我在弹性 beanstalk 上运行的应用程序开始变慢并最终抛出 500 个错误。

但是,如果我sleep在每个请求之后添加一个语句,如下所示:

然后我可以轻松地将虚拟用户数量增加 10 倍,而不会出现任何问题。

所以我的问题是:

确实会导致k6sleep在这段时间内暂停所有虚拟用户的所有请求,还是一次只暂停一个虚拟用户的请求。

据我了解,虚拟用户本质上只是default运行负载测试的函数的并行执行,因此整个函数会为所有用户暂停,还是针对每个用户执行此操作。

在文档中找不到有关此的任何信息,因此将不胜感激任何指针!

谢谢

0 投票
1 回答
457 浏览

stress-testing - 使用打乱图像的 K6 压力测试

语境

  • 我正在构建要由 K6 工具加载和执行的 javascript 文件。
  • 它将用于压力和尖峰测试。
  • 我的 POST 请求将包含 1 个图像和 1 个 ID
  • 我想在 7 个已知选项中使用随机图像
  • 我想随机生成id

问题

我应该在哪里随机化将在请求中使用的图像和 de id?在“init context”还是“vu context”?

考虑“初始化上下文”的代码

考虑“vu context”的代码

0 投票
1 回答
363 浏览

performance-testing - In K6 - 如何在单个脚本中打破单个事务的 TPS

我想在单个脚本中的不同 API 调用中实现不同的 TPS 集。

目前我正在使用阶段、minIterationDuration 和睡眠功能来进行思考。然而,在 API 级别使用不同的思考时间集无助于实现各种 TPS。已经有 --rps 参数,但它在 API 中均匀分配 tps

下面是我的示例代码,

阶段:

请注意上面是使用的示例代码,而不是整个脚本,由于系统限制,我无法执行 K6 的多个实例,我需要在单个脚本文件中进行控制。让我知道你的想法

0 投票
1 回答
250 浏览

javascript - 我可以为视频流创建 K6 负载测试吗

我的项目的页面包含从 youtube 添加的视频。我可以使用虚拟用户看到这些视频的 k6 进行模拟吗?

0 投票
1 回答
1735 浏览

performance - 在 K6 执行性能测试期间观察到更多“dial tcp : I/O timeout”

在 K6 中,我在使用 dial tcp 执行性能测试时观察到更多失败请求:I/O 超时。如果我错过了 K6,请提出任何微调。

在低并发的情况下,让 225 个用户没有问题,但是当用户增加到 300 个时面临这个问题,我正在使用 MacBook 进行测试执行

0 投票
1 回答
419 浏览

load-testing - K6 用户和批处理概念

k6如何解释以下情况:我有两个请求与批处理()和命令行开关-u 4并行运行,即4个用户。在那种情况下,k6 是否为每个用户运行 2 个请求?那是 2x4 = 8 次?并且是按顺序一个接一个的用户吗?

0 投票
1 回答
124 浏览

performance-testing - 如果我想在远程 Windows 服务器上启动 K6 测试运行,是否有 API 可用于启动 K6 测试运行或任何替代方法,例如 curl?

在远程服务器中,是否有使用 API 或 curl 命令启动 K6 进程/负载测试的选项或方法。

示例:我想从机器 1 开始机器 2 中的 k6 负载测试

0 投票
2 回答
2253 浏览

javascript - k6 负载测试 - 如何从 HTML 响应中提取值

我是第一次使用k6 负载测试工具

我发送一个 GET 请求,并在响应中发送 html。然后我需要从这个 html 中提取一些值。

在 HTML 中执行此操作的最佳方法是什么?我在文档中看到以下 3 个命令可能会有所帮助:

HTML 如下所示。我想提取 csrf 和 transId 的值

我想我可以使用 Response.body 然后搜索子字符串来做到这一点。这是最好的方法吗?

0 投票
1 回答
2020 浏览

k6 - K6 负载测试 - 如何同时运行不同的场景

我编写了一个简单的 K6 负载测试脚本,可以成功登录。我编写了一个单独的 K6 负载测试脚本,该脚本执行不成功的登录尝试

它们目前是单独的脚本,您必须自己运行。

我想知道的是你如何模拟用户在一个负载测试中执行不同的场景?例如有效登录、无效登录、注销、任何其他操作。

您是否将不同的场景都放在一个脚本中?