javascript 如何在k6中同时运行多个函数,每个函数指定速率

vq8itlhq  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(131)

我试图找出一种方法,在k6中发出两个单独的请求,每个请求相对于另一个请求是有限的。
例如,我创建了两个POST请求,我希望其中一个在测试运行的90%时间内命中,另一个在10%时间内命中,以模拟在同一个HTTP服务器上的请求分别命中一个较忙碌和较不繁忙的端点。

jtw3ybtb

jtw3ybtb1#

通过指定constant arrival rate executor,使用scenarios以不同的请求速率调用不同的测试函数。
您必须手动预先计算每个端点的比率,但是您可以轻松地定义一个函数来根据总的基本比率计算正确的比率。

const TOTAL_RPS = 100;
function rps(percentage) {
  return TOTAL_RPS * percentage;
}

export const options = {
  scenarios: {
    busy: {
      exec: 'busy_endpoint',
      executor: 'constant-arrival-rate',
      duration: '10m',
      preAllocatedVUs: 50,
      rate: rate(0.9) // 90%
    },
    lazy: {
      exec: 'less_busy_endpoint',
      executor: 'constant-arrival-rate',
      duration: '10m',
      preAllocatedVUs: 5,
      rate: rate(0.1), // // 10%
    }
  }
};

export function busy_endpoint() {
  // will be called 90 times per second (90% of 100 rps)
  http.get('http://example.com');
}

export function less_busy_endpoint() {
  // will be called 10 times per second (10% of 100 rps)
  http.get('http://example.com');
}

相关问题