/k6を使って負荷試験を行いました!2022.12.01k6を使って負荷試験を行いました!こんにちは。クラウドソリューション開発部の中野です。今年の4月に新卒として入社しました。開発チームでのOJT初業務として、開発中のWebサービスの負荷試験を経験しました。用いた負荷試験に関して、自分の備忘録兼解説として記事にさせていただきます。環境構築から始める場合は、以下の記事などを参考に事前準備をお願いします。https://news.mynavi.jp/techplus/article/20220430-2330411/負荷試験とは?負荷試験は、その名の通りシステムに負荷を与え、様々な条件下でも安定して動作しているかを確認するテストのことです。包括的にシステムのスペックを担保したり、負荷的に弱い部分を把握したり、限界性能を確認したりするために行われます。マニュアルによると、負荷試験は大きく5つの種類に分けられます。ロードテスト→想定されている負荷(同時ユーザー数や1秒あたりのリクエスト数)を与え、システムのパフォーマンスを評価するスモークテスト→最小限の負荷を与え、エラーなく動くことを確認するストレステスト→通常時の想定以上の負荷を与え、高負荷状態での安定性と信頼性、システムの限界点を判断するスパイクテスト→一気に大量の負荷を与え、突然の負荷増加によってシステムがどのように機能するかを確認するソークテスト→長期的に負荷を与え続け、信頼性やパフォーマンスを確認する今回は簡単なロードテストを実施します。比較的新しいオープンソースの負荷試験ツールで、下記の特徴があります。今回の作業用に、任意の場所に作業用ディレクトリ(フォルダ)を作成しておいてください。以下ではディレクトリが/home/ubuntu/k6_test1/home/ubuntu/k6_testであると仮定して進めます。インストールできます。versionその他の環境でのインストール手順については公式サイトをご確認ください。メソッドがエラーにならないかどうかをテストしてみます。いう名前のファイルを作成し、以下のコードを書いて保存します。{http.get('https://www.ecomottblog.com/?cat=27');};実行1早速負荷試験を実行してみたいと思います。作業用ディレクトリで、以下のコマンドを実行してください。http_get_ecomottblog.js以下のように出力されれば成功です。90%値、95%値が表示されます。)を見ると、HTTPリクエストを投げた時、90%が0.58秒程度で応答されているのが判ります。詳細な解説は公式ドキュメントをご覧ください。続いて、オプションを指定して実行してみたいと思います。標準で以下のオプションを使うことができます。略で、試験シナリオの中の試験本体部分を並列実行する無限ループの数のこと※試験シナリオには、試験中1回しか実行されない準備部分や後処理部分もあります。1回だけ実行されていました。シナリオ継続時間を5秒間に変更してみましょう。以下のコマンドを実行してください。5s31回実行されたのが判ります。次は継続時間ではなく、繰り返し回数を指定してみます。使うと、JavaScriptを数行記述するだけで簡単な負荷試験が行えます。負荷試験というと難しいイメージがありましたが、拍子抜けするくらい簡単で、初めて実行したときは驚きました。人気の投稿Chromeで不要なCSS/JavaScriptを洗い出すPhotoshopのクイック書き出しはまさにクイック!「クイック書き出し」のご紹介。