使用 k6 只执行 X 个请求

问题描述

有没有办法执行 X 个请求?

我玩过迭代和虚拟用户,但当我不想设置持续时间时,它们似乎需要设置持续时间,只需为每个用户执行 X 个请求。我不想增加或尝试最大化吞吐量,只需触发请求即可。

谢谢

解决方法

我认为您可以使用简单的 JavaScript 循环。

示例场景 test.js

import http from 'k6/http';

const N = 10;

export default function () {
    for (let i = 0; i < N; ++i) {
        http.get('http://test.k6.io');
    }
}

k6 run test.js 输出,如您所见 - 准确的 10 个请求:

[12:06]d.vinokurov@MBP-DVinokurov[lptl]$ k6 run test.js

          /\      |‾‾| /‾‾/   /‾‾/
     /\  /  \     |  |/  /   /  /
    /  \/    \    |     (   /   ‾‾\
   /          \   |  |\  \ |  (‾)  |
  / __________ \  |__| \__\ \_____/ .io

  execution: local
     script: test.js
     output: -

  scenarios: (100.00%) 1 scenario,1 max VUs,10m30s max duration (incl. graceful stop):
           * default: 1 iterations for each of 1 VUs (maxDuration: 10m0s,gracefulStop: 30s)


running (00m01.6s),0/1 VUs,1 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs  00m01.6s/10m0s  1/1 iters,1 per VU

     data_received..................: 113 kB 71 kB/s
     data_sent......................: 760 B  476 B/s
     http_req_blocked...............: avg=14.56ms  min=2µs      med=2.5µs    max=145.61ms p(90)=14.56ms  p(95)=80.09ms
     http_req_connecting............: avg=14.38ms  min=0s       med=0s       max=143.8ms  p(90)=14.38ms  p(95)=79.09ms
     http_req_duration..............: avg=144.89ms min=143.37ms med=144.2ms  max=151.88ms p(90)=145.74ms p(95)=148.81ms
       { expected_response:true }...: avg=144.89ms min=143.37ms med=144.2ms  max=151.88ms p(90)=145.74ms p(95)=148.81ms
     http_req_failed................: 0.00%  ✓ 0   ✗ 10
     http_req_receiving.............: avg=1.52ms   min=286µs    med=821µs    max=7.62ms   p(90)=2.65ms   p(95)=5.13ms
     http_req_sending...............: avg=30.69µs  min=15µs     med=18µs     max=147µs    p(90)=34.49µs  p(95)=90.74µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s
     http_req_waiting...............: avg=143.33ms min=142.69ms med=143.17ms max=144.24ms p(90)=144.02ms p(95)=144.13ms
     http_reqs......................: 10     6.264016/s
     iteration_duration.............: avg=1.59s    min=1.59s    med=1.59s    max=1.59s    p(90)=1.59s    p(95)=1.59s
     iterations.....................: 1      0.626402/s
     vus............................: 1      min=1 max=1
     vus_max........................: 1      min=1 max=1