Javascript k6中的睡眠功能是暂停所有虚拟用户的执行,还是一次只暂停一个用户的执行?

Javascript k6中的睡眠功能是暂停所有虚拟用户的执行,还是一次只暂停一个用户的执行?,javascript,load-testing,k6,Javascript,Load Testing,K6,我是一个新的用于负载测试的人,我想知道sleep函数的行为 现在,我已经构建了一个包含多个阶段的负载测试。在我的默认函数中,我有许多执行的get和post请求 我注意到,如果我只是按顺序执行这些操作几分钟,我在elastic beanstalk上运行的应用程序开始减速,最终抛出500个错误 但是,如果我在每个请求后添加一个sleep语句,如下所示: const getMe=http.get`${appEndpoint}/me`,参数 检查我{ “我:状态是200”:r=>r.status==20

我是一个新的用于负载测试的人,我想知道sleep函数的行为

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

我注意到,如果我只是按顺序执行这些操作几分钟,我在elastic beanstalk上运行的应用程序开始减速,最终抛出500个错误

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

const getMe=http.get`${appEndpoint}/me`,参数 检查我{ “我:状态是200”:r=>r.status==200, “me:500毫秒以下的响应时间正常”:r=>r.timings.duration 所以我的问题是:

睡眠是否会导致k6在该时间段内暂停所有虚拟用户的所有请求,还是只是一次暂停一个虚拟用户的请求

据我所知,虚拟用户本质上只是运行负载测试的默认函数的并行执行,整个函数是否为所有用户暂停,或者是否为每个用户暂停

在文档中找不到关于此的任何信息,因此任何提示都将不胜感激

谢谢

睡眠是否会导致k6在该时间段内暂停所有虚拟用户的所有请求,还是只是一次暂停一个虚拟用户的请求

您的直觉是正确的:由于VU并行执行默认函数,并且彼此隔离,因此睡眠调用将仅暂停该VU的执行

由于您在迭代之间随机睡眠1-4秒,因此您的服务器可能能够处理随机流量,而以测试机能够调度的速度发送请求将导致速度减慢和500个错误。在测试过程中,您将发现什么是系统的正确平衡,以及什么最适合您

正是由于这个原因,这种休眠技术非常有用,因此您可以控制发送的请求量。还可以看一看

睡眠是否会导致k6在该时间段内暂停所有虚拟用户的所有请求,还是只是一次暂停一个虚拟用户的请求

您的直觉是正确的:由于VU并行执行默认函数,并且彼此隔离,因此睡眠调用将仅暂停该VU的执行

由于您在迭代之间随机睡眠1-4秒,因此您的服务器可能能够处理随机流量,而以测试机能够调度的速度发送请求将导致速度减慢和500个错误。在测试过程中,您将发现什么是系统的正确平衡,以及什么最适合您

正是由于这个原因,这种休眠技术非常有用,因此您可以控制发送的请求量。还可以看一看