问题标签 [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 回答
2907 浏览

node.js - 如何在 Node JS 中使用 k6

我需要使用节点 js 脚本中的 k6 发送请求

我已经尝试过这个:

和这个:

但没有成功

UPD

我想像这样使用k6:节点js脚本:

0 投票
1 回答
178 浏览

k6 - k6 将如何支持 createReadStream 属性读取文件流

当我从打字稿的文件路径中读取文件时。我收到错误消息 - 对象没有成员“statSync”,对象没有成员“createReadStream”。

0 投票
1 回答
1171 浏览

npm - 在 K6 测试中捆绑 npm 模块“cheerio”

我正在尝试使用 LoadImpact 中的 K6 框架创建一些测试,但我正在努力按照其文档站点上的说明包含外部 NPM 模块。

在 loadImpacts 文档站点上,它们包含一个关于我所追求的详细示例,这些模块使我能够从肥皂服务响应中解析 xml。但是,我无法让这个工作!现在,我是一个完全的 javascript 新手,但我已经编码多年并且真的很想解决这个问题。可以在这里找到:https ://docs.k6.io/docs/modules#section-npm-modules 任何人都可以让它工作吗?我需要在与 Internet 隔离的服务器上运行它,所以我完全依赖于创建包和传输所需的文件。

根据文档,一个包是这样创建的

我的第一个问题:在运行此命令时,我所在的文件夹中会创建一个“cheerio.js”文件以及一个“cheerio”文件夹和一个“node_modules”文件夹。我的“根”目录中的cheerio.js 仅包含以下内容:

返回到关于如何在 k6 javascript 中引用此包的 LoadImpacts 示例:

这是什么文件,在 browserify 生成的结构中我可以在哪里找到它?我试图将其更改为指向“cheerio”文件夹中的“index.js”或“cheerio/lib”中的cheerio.js。然后,我将收到关于 Cheerio.js 中第一行的投诉,该行定义了一个无法找到的“解析”变量: var parse = require("./parse'), 如果我将其更改为 var parse = require("./parse.js') 它继续抱怨缺少“htmlparser2”,我也可以在这个结构中找到它,但是似乎整个依赖结构都不起作用。

谁能给我一些指导,告诉我如何为cheerio 创建一个带有依赖项的browserify 包,以及我需要如何/什么复制到我的k6 项目以使其像在loadImpact 站点上一样工作。

0 投票
1 回答
1258 浏览

k6 - 如何获取组的组持续时间值

我有一个 K6 测试,其中对流程进行负载测试,并且我正在对每个页面请求进行分组。我想要做的是检查每个组的持续时间,比如

文档说明 group 发出 group_duration 但没有说明如何监听它。JS不强,所以如果这很简单,我很抱歉。

0 投票
1 回答
651 浏览

k6 - 无效的 URL GoError:K6 性能测试中的无效 URL 值

我正在通过 K6 运行 APIhttp.url并收到以下异常,但不确定 URL 中遗漏了什么;

WARN[0063] Request Failed error="Get http://test.loadimpact.com : dial tcp "ip":80: connectex: 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应。”

错误 [0063] GoError: 无效 URL 值 '&http.Response{ctx:(*context.valueCtx)(0xc003dfbb00), RemoteIP:"", RemotePort:0, URL:" http://test.loadimpact.com", Status:0, Proto:"", Headers:map[string]string(nil), Cookies:map[string][]*httpext.HTTPCookie(nil), Body:interface {}(nil), Timings:httpext .ResponseTimings{Duration:0, Blocked:0,lookingUp:0, Connecting:0, TLSHandshaking:0, Sending:0, Waiting:0, Receiving:0}, TLSVersion:"", TLSCipherSuite:"", OCSP:netext。 OCSP{ProducedAt:0, ThisUpdate:0, NextUpdate:0, RevokedAt:0, RevocationReason:"", Status:""}, Error:"dial tcp "ip":80: connectex: 连接尝试失败,因为连接方一段时间后没有正确响应,或者由于连接的主机未能响应而建立连接失败。", ErrorCode:1210, Request:httpext.Request{Method:"GET", URL:" http://test.loadimpact .com ",标题:map[string][]string{"用户代理":[]string{"k6/0.24.0 ( https://k6.io/)"}},正文:"",Cookies:map[string][]*httpext.HTTPRequestCookie{}},cachedJSON:interface {}(nil),validatedJSON:false}'

0 投票
1 回答
888 浏览

load-testing - 每个 VU 的 K6 内存消耗

我最近开始使用 k6 并且非常喜欢编写测试的方法。当我开始我的第一次严肃测试时,我发现每个 VU 的内存消耗相当高,尽管我的测试并不大。正如我在这里读到的,如果脚本很小,每个 VU 的内存消耗应该在 1-2 MB 左右。在我的情况下,每个 VU 的内存消耗约为 5 MB。

为了验证一个非常简单的脚本需要多少内存,我创建了一个什么都不做的脚本:

当我使用 2000 个用户运行此脚本时

docker run --rm -v /tmp:/tmp loadimpact/k6 run -u 2000 --paused --no-teardown --no-setup /tmp/MemTest.js

我最终使用了 10 GB 的内存(每个 VU 大约 5MB)

所以即使 JS 是空的,内存使用率也很高。这是预期的吗?

0 投票
1 回答
549 浏览

javascript - 如何在k6工具中模拟/脚本AD集成SSO登录

应用程序使用 SSO 登录进行访问。

如果 SSO 登录不起作用,浏览器会要求提供凭据以登录应用程序。

为了使用 K6 工具对此类应用程序进行负载测试,我试图了解如何编写脚本以成功登录。

我已尝试将凭据作为 URL 的一部分传递,如下面的代码所示,并尝试作为 NTLM 身份验证。

下面是我的脚本;

响应的预期 HTTP 状态代码是 301,但我目前得到 401:未验证。

但是,如果上述请求中的 URL 更改为:

我收到错误(如下),因为它不能接受带有提到的另一个域的用户名。

ERRO[0002] GoError: parse https://global\user001:Password@abc.xyz.dev/pqrs: net/url: invalid userinfo

我做错了什么,我该如何解决?

0 投票
1 回答
164 浏览

javascript - k6 - 带有 *.crt 文件的配置文件中的 tlsAuth

查询与 k6 工具中的以下配置选项有关:

  1. tlsAuth - 如何传递保存在 config.json 文件中另一个文件夹中的证书。
  2. minIterationDuration 选项在 k6 中如何工作?请在 config.json 文件中就其语法提出建议。

我试图在 config.json 中为这两个查询设置如下配置。

  1. 对于 tlsAuth,不能将 'open' 放在 json 文件中,如下所示。那么解决方法是什么?

  2. 试图了解 minIterationDuration 配置选项。如果默认函数在此定义的持续时间之前完成执行,k6 是否会等待?在另一种情况下,当默认函数完成执行的时间超过此定义的持续时间时,它是否会立即等待?

下面是来自 config.json 文件的片段 -> (实际文件也有更多选项)

期望通过包括 tlsAuth 选项的配置文件定义我的所有 k6 选项,并使用来自另一个文件夹的定义的证书。不想在主 js 文件中定义 k6 选项。

好心提醒。提前致谢,如果这是一个简单的编码级别问题,我深表歉意。

0 投票
1 回答
776 浏览

javascript - 从 K6 模拟每个 VU 的浏览器缓存以进行负载测试

我了解 k6 无法根据其文档模拟浏览器缓存(标头中的 cookie 除外)。

是否有人在使用 k6 工具进行负载测试时尝试模拟浏览器缓存(不仅仅是 cookie 标头)?

寻找以下功能/选项: 1. 打开/关闭浏览器缓存。
2. 在每次迭代开始时清除 cookie。

试图了解如何从每个资源的 k6 脚本处理 Etag、Expires、Last-Modified、Cache-Control、If-None-Match 或 If-Modified-Since 等标头。不确定,在尝试处理浏览器缓存时是否需要检查更多内容。

如果是,请分享一些关于如何做到这一点的想法,或者为任何正在进行/成功的项目分享 github repo。如果成功,一旦验证,可能可以贡献给 k6 repo。

0 投票
1 回答
190 浏览

javascript - 仅使用正则表达式解析 id

使用这个正则表达式/var userId = (\d+)/,我可以找到用户的 id。除了它返回"var userId = 117051"而不是仅返回 117051。我在 regexr 中环顾四周,但我对 regex 不是很好。有没有办法只获取id?