クラウド上から負荷テストを実行できるSaaS型のk6クラウドに入門

2022.02.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

以前の記事ではオープンソースのk6をちょっと触っていきましたが、今回は同じk6をクラウド上から実行できるサービスも提供されているので試していきたいと思います。

オープンソース版との比較ですが、以下のページに記載されています。

k6 OSSとk6 クラウドの比較

商用SaaSということなので、色々とGrafana Labs側で提供している機能が多いですね。

負荷テストのスケーリング、テスト結果の保存と視覚化、パフォーマンスの問題の検出、異なるテスト間の結果の関連付け、一元管理  ができるので、チームが負荷テストの取り組みを管理するときに便利になります。

現在、フリートライアルが利用できるようなので実際にサービスを使ってテストを実行していきたいと思います。

価格情報はこちら

アカウント作成

k6 cloudのページからフリートライアルを始めるためのリンクがあるので、そこからアクセスしてアカウントを作成します。

アカウントを作成すると、自動的に管理ダッシュボードへとリダイレクトされます。

テストスクリプトの作成

オープンソースの時と同じく、k6でテストはコードベースとなっています。

※ 今回は実行を試すだけなので、スクリプトの中身に関しては言及しません

アカウントを作成し、ログインするとMy first projectというデフォルトのプロジェクトが選択された状態です。

このプロジェクト内でテストを作成して実行していきます。

プロジェクトとは、組織レベルでテストを整理するために使用するファイリングシステムのようなもの とドキュメントに書かれていました。

チーム毎、アプリケーションごと、リリースバージョン毎 などで分割して作っていくと良いと思います。

プロジェクト

k6クラウドではテストの作成を2つのタイプから選択できます。

一つはTest builderと呼ばれているもので、 グラフィカルインターフェイスを利用してk6テストを作成できます。入力に基づいて、テストビルダーは自動的にk6スクリプトを生成します。

もう一つはScript editorと呼ばれているもので、k6のダッシュボード上からk6スクリプトを記述して作成します。

Script editorで作成

Script editor

ダッシュボードの左メニューにあるCREATE NEW TESTをクリックし、テスト作成の選択画面からScript editorをクリックします。

上記のようにデフォルトのスクリプトが記述された状態でエディタが起動します。

スクリプトのサンプルがいくつか提供されていて、選択するとコードの中身も切り替わります。

また、HARファイルをアップロードしたり、ブラウザの操作をレコーディングして自動的にスクリプトを作成できる機能もあります。

コードを書き終えたら、CREATEをクリックして保存します。

Test builderで作成

Test builder

ダッシュボードの左メニューにあるCREATE NEW TESTをクリックし、テスト作成の選択画面からTest builderをクリックします。

LOAD ZONES

負荷テストを実行する場所を構成します。 負荷をすべてのゾーンに均等に分散か、手動で設定するかを選択できます。

上記は2つのゾーンで分散した例となります。

THRESHOLDS

THRESHOLDSのDOC

テストの合格/不合格の基準を設定して、テスト対象のシステムの期待されるパフォーマンスを指定します

CLOUD APM

CLOUD APMのDOC

実行中のテストからリアルタイムでメトリックをエクスポートする場所を選択します

こちらはプランによって利用できるできないがあります。今回は使用しないことにしました。

Proプラン、Enterpriseプラン、年間Teamプラン、Trialで利用可能

SCENARIO

SCENARIOのDOC

シナリオを使用すると、VUと反復のスケジュール方法を詳細に構成できます。 これにより、負荷テストでさまざまなトラフィックパターンをモデル化できます

他のテストツールと同じく、

徐々に同時実行のユーザーを増やしてテストを実施する、一定数の同時実行ユーザーで実施する、指定時間内で200回実行する などを設定できます。

上記の画像は、

最初の1分間で20ユーザーまで増やし、3分30秒間20ユーザーのままアクセスし続けて、最後の1分間でユーザーを0人にする といったモノです。

REQUESTS

REQUESTSのDOC

各シナリオが実行するHTTPリクエストを構成します。

リクエストの名前、リクエストのエンドポイントの指定とHTTP Method, ヘッダーとクエリパラメーターとリクエスト本文の指定もできます。

また、レスポンス本文やレスポンスコードのチェックを行ったり、 環境変数を設定してスクリプトへの環境変数の受け渡し/k6オプションを構成 といったこともできるようです

スクリプトの確認

Test builderで構成した内容をスクリプトとして確認ができます。

エディタの左上部にあるトグルをscriptに切り替えるとコードが表示されます。

設定した内容がどんなコードで書かれているのかがわかるので学習にもなりそうですね。

確認が終わったらSAVEボタンを押して保存します。

テストの実行

プロジェクトのトップページに作成したテストが表示されるようになるので、メニューからRun testを実行するか、

テストの詳細画面から実行できます。

テスト実行中は、上記のようにテスト中の状況がリアルタイムで確認できます。

結果の確認

実行完了後は、k6 Cloudで用意されているk6 Cloud Resultsという機能により、

テスト結果を視覚化、保存、分析、および傾向分析できます。

結果分析のDOC

さいご

k6のクラウド版を使ってテスト実行を試してみました。

マネージドサービスのため、負荷クライアントを自前で用意する必要がない点はメリットと言えます。 今回はダッシュボードからテストを実行しましたが、k6のクライアントツールからクラウド経由でテスト実行もできるので、開発サイクルに組み込むことも容易にできるのではないでしょうか。

オープンソース版かSaaS版かを決めるためには以下の公式ドキュメントを参考にすると良いと思います。

Open Source Stack or SaaS?