負荷テストを実行したいけれど費用を抑えたい場合は、フリー(無料)の負荷テストツールを選ぶという選択肢があります。このページでは、フリー(無料)の負荷テストツールは本当に「使える」のかどうかについて解説します。
フリーで使える負荷テストツールとは、無料で負荷テストができるツールのことです。海外製が多く、専門知識は不要で簡単に使えるツールが多いのが特徴的です。とはいえ、無料なので有料に比べると機能性が劣る場合が多いのがデメリットといえます。
フリーで使える負荷テストツールは、費用を抑えて負荷テストを行うことが可能です。基本的な負荷テストを実施できますが、無料で開発・保守されているため、LoadViewのような有料ツールが提供する幅広いシミュレーションオプションは用意されていません。不十分なテスト結果や適切なテストの失敗により、将来的に有料ツールよりも費用がかかる可能性があります。
社内の少数メンバーで使う小規模なシステムや、単発で済む程度の負荷テストであれば、フリーの負荷テストツールでも十分です。ただし負荷は一度解消したからといって二度と発生しないわけではなく、アップデートの度にテストが必要になるケースも多いのが実情。
例えば負荷テストサービス会社の中には、検出したバグを分析した上で改善アクションまで踏み込んでくれるところがあります。同じ依頼をするなら、こういった改善までできる会社がおすすめです。というのも、エンジニアが本来の開発に集中でき、自動的に不具合やバグの報告が上がり適宜改善してくれる仕組みこそが、理想の開発環境と言えるからです。
当サイトでおすすめしている3社は、すべてこの要件を満たしています。あなたが抱えている課題を、それぞれの会社が持つ「独自の強み」で解決してくれますので、ぜひ依頼先選びの参考にしてみてください。
フリーで使える負荷テストツールの中には、高品質のシミュレーションを提供する優れたオプションを搭載した無料テストツールもあります。
例えばJMeter(正式名称「Apache JMeter」)は、Webサービスを中心にさまざまなアプリケーションやシステムの負荷テストが行える無料ツールです。Javaがインストールされている状態なら、Windows、Mac OSX、LinuxのどのOSでも実行できます。
ただし、実際のブラウザを使用した大規模なテストや、複数の場所から仮想ユーザーを生成するLoadViewの機能を利用する場合は、適していない場合があります。
シナリオの作成やリアルタイムでの結果表示のほか、テスト結果を元にして詳細なレポートの生成を行うことができます。このことによりパフォーマンスの問題点・改善点を明らかにすることができます。
Java
Gatling(ガトリング)は、Javaで書かれた負荷テストのためのオープンソースツールです。JavaScriptやロードテストツールに精通している方におすすめです。基本的なテストの実行が可能ですが、大規模なテストには不向きかもしれません。
特にHTTPプロトコルを使用したWebアプリケーションテストに適しているツール。スクリプトベースで設定を行うことから複雑なシナリオにも対応が可能です。またScalaを使用してシナリオの記述を行うため、プログラム的にテストケースの構築ができます。
Scala、Java、Kotlin
LoadViewは、ウェブ サイトのロードテストを自動化できるブラウザベースの負荷テストツールです。実際のブラウザテストを特徴とする機能豊富なSaaSツールであるため、知識不要でアカウントを作成するだけで簡単に利用することが可能です。追加の機器やスキルも必要ありません。
ブラウザにおいて多数の同時接続が発生するWebサイトやAPI、アプリケーションにおけるストレステストを行うことが可能。また、Load Step(ステップ負荷)、Dynamic Adjustable(動的調整可能)、Goal-based(目標ベース)の3種類の付加曲線テストを行えます。
C#
Locust(ロウカスト)は、主にWebアプリケーションやAPIのパフォーマンステストを目的として利用されている、オープンソースの負荷試験ツールです。Pythonを用いてテストシナリオが記述できることから、柔軟でカスタマイズ性が高いことや、テストの実行結果はGUIとCSVで表示することが可能です。また、Pythonがインストールされていれば簡単に導入ができます。
WebアプリケーションやAPIの負荷テスト・パフォーマンステストのほか、複数のマシンを使用してテストを実行可能なので、大規模な負荷テストにも対応ができます。
Python
K6はGoで記述されたオープンソースの負荷テストツールです。このツールは、使いやすさとJavaScriptによるスクリプト作成に重点が置かれている点が特徴。パフォーマンステストやスケーラビリティテスト、ストレステスト用に設計されています。また、公式ホームページにそれぞれのOSごとのインストール手順が公開されており、導入までのハードルが低い点もポイントです。
JavaScriptにテストシナリオを記述し、負荷テストを実施することが可能です。またテスト結果についてはリアルタイム分析が行えます。
JavaScript
Artilleryは、使いやすさとスケーラビリティを考慮して設計された、オープンソースの負荷テストツールキットです。YAMLベースのシナリオスクリプティングが可能であることから、複雑なテストシナリオを直感的に定義することが可能です。また、HTTP、WebSocketなどを含む幅広いプロトコルをサポートしていることから、さまざまなテスト要件に対応することが可能です。
WebアプリケーションやHTTP APIなど幅広いアプリケーションにおける負荷テストを行えます。さらに、レポート共有やコラボレーションをサポートするためのさまざまな機能が用意されており、テスト結果の共有が簡単に行えます。さらに、多彩な統合機能も搭載されていることから、監視ツールなどとの連携も行えます。
YAML
Tsungは、さまざまなプロトコルに対応している負荷テストツールです。並行処理に強い点を特徴とするErlangというプログラミング言語で開発されており、多くの同時接続について効率的にシミュレートすることが可能です。こちらのツールはWebサーバーの負荷テストやデータベースのパフォーマンステストなどで利用されます。
分散環境でのテストもサポートしていることから、複数のマシンを使用して負荷テストを行うことが可能なので、より現実的なテスト環境の構築が可能です。また、負荷テストの結果を詳細レポートとして生成する機能を備えています。
Erlang
Goを用いて記述されている、オープンソースのHTTP負荷テストツールであり、シンプルさと柔軟さが特徴。コマンドラインから使用するように設計されていますが、コマンドラインインターフェースがシンプルであることから、シナリオを簡単に定義して実行することが可能。ただし、コマンドラインを使い慣れていないユーザーにとっては直感的ではないと感じる可能性もあります。
HTTP/1.1およびHTTP/2プロトコルをサポート。さまざまなWebアプリケーション、サービスのテストに適しているほか、攻撃シナリオの柔軟な構成が可能なので、多彩なテストシナリオに対応ができます。
Go言語
Loaderは、無料で提供されている負荷テストサービスです。シンプルなクラウドベースで提供されている点が特徴であり、Webを使用して素早く簡単にテストを行える点が特徴。シンプルな負荷シナリオ向けのツールです。また、対象ホストに対し正当な持ち主化を確認するVerification機能が搭載されています。
テストを行う場合には、WebインターフェースまたはAPIを通じ、テストようにアプリケーションの登録を行い、テストを実行します。テストはリアルタイムで監視することが可能であり、その結果はチーム内で共有が可能です。
なし
負荷テストサービス会社は数多くありますが、それぞれ得意とする領域は違います。
原因特定力が高くスピーディに解決できる会社もあれば、アフターサポートが手厚い大手ソフトウェアテスト会社、インフラレベルの大規模テスト実績が豊富な会社など、強みも様々。
ここでは代表的な3つのニーズに分けて、おすすめの会社を紹介しています。
\スピーディな負荷改善/
\安心サポート/
\大規模&高負荷/