Javascript 使用k6进行Meteor应用程序负载测试,等待车身元件

Javascript 使用k6进行Meteor应用程序负载测试,等待车身元件,javascript,node.js,meteor,load-testing,k6,Javascript,Node.js,Meteor,Load Testing,K6,k6新手,使用一个web应用程序,在加载css和js文件时在主页上简要显示微调器 一旦文件被加载并且脚本可用,就会添加一个登录表单(替换微调器) 对于k6,是否有一种方法可以等待特定的主体元素(登录表单)在主体中可用,然后再继续下一步(即填充用户名和pwd并提交表单以登录) 目前,当我查看响应主体时,我只看到微调器元素。添加延迟似乎不会影响返回的正文,即使理论上登录表单应该已经添加到页面中 如果在初始页面加载后将元素添加到正文中,k6是否会检测到该元素并在响应中提供该元素 谢谢你的帮助 Bi

k6新手,使用一个web应用程序,在加载css和js文件时在主页上简要显示微调器

一旦文件被加载并且脚本可用,就会添加一个登录表单(替换微调器)

  • 对于k6,是否有一种方法可以等待特定的主体元素(登录表单)在主体中可用,然后再继续下一步(即填充用户名和pwd并提交表单以登录)
目前,当我查看响应主体时,我只看到微调器元素。添加延迟似乎不会影响返回的正文,即使理论上登录表单应该已经添加到页面中

如果在初始页面加载后将元素添加到正文中,k6是否会检测到该元素并在响应中提供该元素

谢谢你的帮助


Bill

k6不像浏览器那样工作——负载测试是用JavaScript编写的,但是当您请求HTML文件时,该文件中的JavaScript不会执行。即使使用
eval()
或类似的工具,它通常也无法执行,因为k6没有DOM或任何常见的浏览器API。因此,您必须明确指定希望k6脚本发出的任何HTTP请求,在您的情况下,我假设微调器和登录表单是由主页中某个地方的JavaScript生成的


为了在使用k6时简化处理此类高度动态的网站,您可以在浏览器中正常使用该网站,将浏览器会话记录为文件并导出,然后使用如下命令将该
.har
文件转换为k6脚本:
k6 convert session.har-O k6_script.js
。您可以找到有关整个过程的更多信息。

k6不执行客户端代码,也不呈现任何内容。它对目标系统发出请求并加载它们。这使得提出大量需求变得高效,但在某些情况下会产生必须解决的新问题

>P>捕获所有必要的请求-通常使用<代码> K6转换< /C> >转换一个HAR文件很好地给出脚本的基础。我建议在转换时使用其他选项来限制任何第三方请求。e、 g.
--仅
--跳过
。更多信息请点击此处:

  • 由于您录制了浏览器会话,如果您的应用程序/站点使用任何东西来防止CSRF攻击,则必须处理这些值/将它们关联起来。e、 g..NET站点使用
    VIEWSTATE
    ,如果您正在测试.NET应用程序,则需要指示VU从响应正文中提取VIEWSTATE,并在需要它的请求中重新使用它

  • 与第2点类似,如果您提交表单,您可能不想反复使用相同的细节。这通常只是测试您的系统缓存或导致请求失败的程度(如果您正在登录,并且您的系统不支持同一用户的并发登录,例如)。k6能够利用CSV或JSON数据作为数据参数化的源。如果不太复杂,您还可以生成一些内联代码。以下是一些例子:


  • 谢谢你的链接,KyleExcellent!这似乎奏效了。现在,我需要花一些时间挖掘转换后的.har,微调内容,并学习如何更详细地使用k6。谢谢你的提示!我也在使用--nice工具组合。在深入查看结果和附加测试后,似乎录制没有完成整个过程(即等待登录表单添加到页面、提交表单、登录等)。我会继续修修补补,以确保我能让这项工作,但不幸的是,我可能不得不去一个不同的方向。谢谢你的建议!k6最终可能是对API进行负载测试的一个很好的解决方案,但由于网站本身的动态/交互性质,看起来Selenium可能需要成为负载测试组合的一部分。