k6入門:k6 の Externally controlled について

スポンサーリンク
k6入門:k6 の Externally controlled について 環境構築
k6入門:k6 の Externally controlled について
この記事は約3分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、k6 の Externally controlled についてご紹介します。

スポンサーリンク

背景

Dockerで構築したWebアプリの開発環境において、k6のExecutorsについて調査したときの内容を備忘として残しました。

開発環境のソースは下記のリポジトリにあります。

Externally controlled

“k6のREST APIまたはCLIを使用して実行を制御およびスケーリングする”

以前は、pause、resume、およびscale CLIコマンドが使用され、k6の実行をグローバルに制御していました。このエグゼキュータは、実行時にk6の実行を制御するために使用できるより良いAPIを提供することにより、同じジョブを実行します。

注意:外部から制御されるエグゼキュータの場合、アクティブまたは最大のVUの数を変更するためにscale CLIコマンドに引数を渡すことは、外部制御されるエグゼキュータにのみ影響します。

options

外部制御されるエグゼキュータには、graceful stopがありません。

また、このエグゼキュータにはすべての共通の設定オプションがあり、以下の特定のオプションもあります。

以下は、”externally-controlled executor”のオプションとその説明です。

オプションタイプ説明デフォルト値
duration (必須)文字列テストの合計実行時間
vus整数同時に実行するVUの数
maxVUs整数テスト実行中に許可される最大のVU数

いつ使用するか

このエグゼキュータは、テスト実行中にVUの数を制御したい場合に使用されます。ただし、重要な注意点として、このエグゼキュータはk6クラウドでサポートされておらず、ローカルでk6 runとともにのみ使用できます。クラウド環境では使用できないことに注意してください。

サンプル

この例では、実行時に制御可能なテストを実行します。テストは10 VUsから始まり、最大50 VUsまで増加し、合計の実行時間は10分です。このようなテストを実行するには、”externally-controlled executor”を使用しますが、クラウド環境ではサポートされていないことに注意してください。

import http from 'k6/http';

export const options = {
  discardResponseBodies: true,
  scenarios: {
    contacts: {
      executor: 'externally-controlled',
      vus: 10,
      maxVUs: 50,
      duration: '10m',
    },
  },
};

export default function () {
  http.get('https://test.k6.io/contacts.php');
}

おわりに

今日は、k6 の Externally controlled についてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました