ウェブサイトを含め、ソフトウェアの最適化には、パフォーマンステストツールが欠かせません。パフォーマンスがユーザー体験やコンバージョン、ひいては事業の収益に直接影響を与えることは、広く知られています。

2019年、ソフトウェアテストサービスの市場規模は、世界で400億ドル以上に到達し、現在もその成長は留まる所を知りません。この結果、あらゆる用途や予算に合わせたパフォーマンステストツールが多数存在しています。

そこで今回は、プロジェクトに適したツール探しのお役に立てるよう、優れたパフォーマンステストツールの特徴やメリットをご紹介します。

 

早速本題に入りましょう。

パフォーマンステストとは

パフォーマンステストは、ソフトウェアテストの一種。与えられた負荷に対する速度、応答時間、スケーラビリティ、リソース使用量、安定性などの観点から、ソフトウェアのパフォーマンスを測定します。

Kinstaユーザーのための内蔵パフォーマンス監視ツール「Kinsta APM」
Kinstaのパフォーマンス監視ツール「Kinsta APM」

パフォーマンステストの目的は、ソフトウェアのパフォーマンスのボトルネックを特定することにあります。

パフォーマンステストの主な種類

パフォーマンステストには、大きく分けて以下の6種類があります。

1. 負荷テスト

負荷テストは、一定時間内に負荷(同時使用ユーザー数、トランザクション数、ソフトウェアの動作など)が増加した際、ソフトウェアがどのように動作するかを測定します。

負荷テストによって、応答時間やスループット、リソースの使用率などがわかります。各要素のパフォーマンスの課題を見つけ出し、アプリケーションのリリース前に改善しておくことで、利用者により良いユーザー体験を提供することができます。

また開発者は、アプリケーションの特定の時点において、同時使用ユーザー数の上限を把握しておくことができます。

2. 耐久性テスト

耐久性テスト(ソークテストとも)は、ソフトウェアに一定の負荷を与え、一定期間に連続稼働した際のパフォーマンスを測定します。つまり、持続性を実現するため、ソフトウェアが一定の負荷にどれくらいの期間耐えることができるかを調べるテストです。

テストでは、メモリリーク、メモリ使用量、メモリ不足などのKPIを監視します。このテストを通じて、長期稼働後の応答時間やスループットを分析し、各指標が一定であるかどうかを確認することができます。

3. ストレステスト

ストレステストは、想定される以上の負荷がかかった際のパフォーマンスを測定するものです。ソフトウェアに大量のトラフィック(同時アクセス数やトランザクション数など)を与えて過負荷状態に追い込み、動作を確認します。

ソフトウェアの安定性の確認が目的であり、ソフトウェアが故障するポイント、そして故障後にどのように修復されるかを調べます。具体的には、CPU、メモリ、ディスク容量などのハードウェアリソースに負荷をかけ、リソースの使用率からアプリケーションの限界点を測定します。

例えば、ECアプリを運用する企業は、ブラックフライデーなどの大きなイベント前にストレステストを実施し、パフォーマンスを測定しています。

4. スパイクテスト

スパイクテストは、ストレステストの一種であり、擬似的に大量アクセスを発生させて負荷を増やしたり、瞬間的に限界を超える負荷を与えたりして、極限状態でのパフォーマンスを測定します。これによって、ソフトウェアが予期せぬ負荷の急増に対応できるかを調べることができます。

5. ボリュームテスト

開発段階では、コードのテストに少量のデータしか使用されません。ボリュームテスト(フラッドテストとも)は、ソフトウェアに大量のデータを投入し、その応答性や動作を確認します。これは、データ損失やシステムの応答時間、データ容量の信頼性の測定に役立ちます。

6. スケーラビリティテスト

スケーラビリティテストは、増加し続ける負荷をソフトウェアがどれだけうまく処理できるかを測定します。パフォーマンス属性がスケールアップ/スケールダウンした際の動作を把握することがでいます。

テスト実施中は、データ量やユーザー数を徐々に増やしながら、ソフトウェアのパフォーマンスを監視します。

パフォーマンステストのメリット

2019年3月に発表されたあるレポートによれば、Facebook(現Meta)は壊滅的な停電の被害を受け、約9,000万ドル(およそ120億7,000万円)の収益を損失しました。同様に、2015年3月には、App Storeのダウンによって、Appleが2,500万ドル(およそ33億6,700万)の収益を失ったことも報告されています。

このように、堅牢なITインフラと高度なセキュリティを備えた大手IT企業でさえも、莫大な損失を被った過去があり、アプリケーションのパフォーマンステストがいかに重要であるかを物語っています。テストを実施しておけば、機能やシステムの問題点を事前に洗い出し、より良いユーザー体験を実現することができます。

以下、具体的なパフォーマンステストのメリットをいくつか見てみましょう。

1. 速度、安定性、整合性の測定

速度、安定性、整合性は、ソフトウェアのパフォーマンスにおいて非常に重要な指標です。各指標を測定することで、負荷がかかる状況下での動作を監視し、スケーラビリティに関する有益な情報を入手することができます。

また、開発者はテスト結果をもとに改善点を見つけ出し、ソフトウェアに加えるべき変更を分析することができます。

2. 基本機能の検証

ソフトウェアの成功の鍵は、堅牢な基盤が握っているといっても過言ではありません。基本機能のパフォーマンスを把握しておけば、事業戦略の策定や情報に基づいた意思決定を下すことができます。

また、開発チームはリソースをプールすることで、ソフトウェアのパフォーマンス、ひいては製品やサービスをより良いものにすることができます。

3. 問題の特定と解決

パフォーマンステストを実施すれば、サイトやアプリのローンチ前に問題を見つけ出し、解決することができます。製品の発表後は、報告を受けた問題を急いで修正することなく、技術の向上に専念できます。

4. パフォーマンスの最適化

パフォーマンステストを通じて、データや負荷の処理能力や同時接続ユーザー数の最適化を図ることができます。また、修正可能なスケーラビリティの問題を見つけ出し、大きな負荷に耐えられるよう、処理能力を調整することができます。

5. コードの質と機能性の向上

ソフトウェアの問題点は、特定さえできればすぐに改善することができるもの。パフォーマンステストを通じて、開発者がコードの質を保ち、機能を改善することで、優れた速度、信頼性、スケーラビリティ、安定性を実現することができます。

6. 優れたユーザー体験の提供

読み込みや操作に時間がかかるソフトウェアは、誰にも好まれません。2~3秒以内に読み込みが完了し、その後もスムーズに動作するソフトウェアが理想的です。ユーザーは、初めてアクセスした瞬間にそのまま利用し続けるか、それとも削除するかを決定する傾向にあります。したがって、ソフトウェアの第一印象は、非常に重要です。

パフォーマンステストは、ユーザーに評価されるソフトウェアの構築と収益向上に貢献してくれます。

ヒント)パフォーマンステストは、開発者がすぐにフィードバックを受け取り、そのまま修正を加えることができるため、コード記述を終えた直後に行うのがベストプラクティスです。

パフォーマンステストの手順

上記で挙げたパフォーマンステストの目的は、すべてのソフトウェアに共通しますが、テストを行う手順はやや異なります。以下、一般的な手順をご紹介します。

  1. テスト環境の選択─テスト環境、パフォーマンステストツール、本番環境を決定します。また、テストに使用するソフトウェア、ハードウェア、ネットワーク構成なども選定してください。
  2. パフォーマンス指標の決定─応答時間、スループット、トランザクション、読み込み時間、CPU、メモリ、ディスク容量のリソース配分など、パフォーマンス指標を決定します。
  3. テストの計画─ユーザー数の変動、指標、テストデータを含むシナリオを作成します。複数種類のパフォーマンステストの設計に役立ちます。
  4. テスト環境の準備─テストの目的や指標に適したテストツールに加えて、テスト環境を準備します。サイトのパフォーマンステストには、Kinsta APMがお勧めです。
  5. テスト設計─チーム内でスムーズにテストを実施するため、作成したシナリオに従って、パフォーマンステストを設計します。
  6. パフォーマンステストの実施─以上を終えたら、テストを開始します。テストの実行中は、パフォーマンスの監視と結果データの収集を行います。収集したデータは、開発チームがパフォーマンスを改善するのに役立ちます。
  7. 分析、レポート、および再テスト─テスト結果を分析し、浮き彫りになった問題点の改善に必要な作業を改善するのに必要な作業を洗い出します。その後は、問題のトラブルシューティングを行い、パフォーマンステストを再度行い、改善点を監視します。すべての問題が解消されるまで、繰り返しテストを実施します。

パフォーマンステストについて分かったところで、ここからは優れたパフォーマンステストツールをいくつか厳選してご紹介します。

おすすめのパフォーマンステストツール26選

おすすめのパフォーマンステストツールは、以下の通り。順番にご紹介していきます。

1. Kinsta APM

Kinsta APM
Kinsta APM

WordPressサイト用に使いやすいパフォーマンス監視ツールをお探しなら、Kinsta APMがお役に立てるはず。Kinstaサイトのパフォーマンスの問題を簡単に特定して、トラブルシューティングが行える便利ツールです。シンプルで使いやすいUIで、初心者からプロの開発者まで誰でも使える設計になっており、10ヶ国語に対応しています。

PHPトランザクションや外部リクエスト、MySQLクエリに関するインサイトを得ながら、低速なデータベースクエリ、最適化されていないテーマやプラグイン、時間のかかるAPI呼び出しや外部URLリクエスト、最も遅い/平均的な/中央値のトランザクションをデバッグすることができます。

Web制作会社、ECサイトを運営する企業、開発者まで、あらゆるユーザーや企業に向けた有用なツールです。コントロールパネル「MyKinsta」に組み込まれているため、外部のAPMツールへの追加投資は不要。素早くパフォーマンスの問題の特定とトラブルシューティングを行うことができます。

注目ポイント

  • カスタマーサポート─10年以上の経験を持つプロのエンジニアで構成されたKinstaのカスタマーサポートは、24時間年中無休で利用可能。問題の解決率は100%で、チャットを通じてすぐに返信を受けることができる。
  • 価格─Kinstaのホスティングサービスを利用していれば、プランを問わず無料で使用可能。見本紹介セッションを予約して、実際にツールを試すことも。

2. WebLOAD

WebLOAD
WebLOAD

1997年にリリースされたRadViewのWebLOADは、ソフトウェアのパフォーマンスおよび負荷テストツールで、スケーラビリティの確保に役立ちます。パフォーマンス、整合性、スケーラビリティなどの指標を測定できます。

企業向けツールで、数千のユーザーを同時にシミュレートできるため、大きな負荷を与えて、アプリケーションの弱点、制約、問題点を見つけ出すことができます。

WebLOADでは、ウェブサイトの負荷テスト、継続的なテスト、クラウド環境での負荷テストなどが実行可能です。クラウドまたはオンプレミスのマシンで負荷を生成し、テストスクリプトを視覚的に記録、編集、デバッグできる統合開発環境(IDE)を内蔵しています。

プロキシベースのレコーダーでHTTPトラフィックを記録し、JavaScriptでテストを生成。また、IDEに組み込まれたツールでテストの編集や拡張も可能です。さらに、ボトルネックの特定に役立つパフォーマンスデータの分析レポートも取得できます。

注目ポイント

  • 相関機能─セッションIDのような動的な値を自動で紐付け、別の仮想クライアントでスクリプトを実行できる。
  • 対応プロトコル─HTTPS、HTTP、XML
  • 統合性─Selenium、Jenkinsなどのツールと統合可能。
  • カスタマーサポート─電話、FAX、お問い合わせフォーム
  • 価格─要問い合わせ(ユーザー数最大50の無料トライアルあり)

3. Apache JMeter

Apache JMeter
Apache JMeter

Apache JMeterは、パフォーマンスの測定と分析を行う名の知れた負荷テストツールです。Javaで実装されたオープンソースツールで、ウェブアプリのパフォーマンステストに使用されるのが一般的ですが、他のソフトウェアにも使用できます。

動的なウェブアプリに限らず、動的リソースと静的リソースの両方のパフォーマンスを測定可能。また、サーバー、ネットワーク/オブジェクト、あるいは異なるサーバーグループに対し大きな負荷を与え、指標を測定し、さまざまな負荷に対する総合的なパフォーマンスを分析することができます。

使い勝手が良く、高度なインフラは不要です。多くの負荷生成ツールと互換性があり、管理は1つのコントロールパネルで行うことができます。また、他の負荷テストツールに比べて、スクリプトがほとんど必要ないユーザーフレンドリーなGUIを搭載。見やすいグラフとチャートで、負荷に関する主要データとリソースの使用率を素早く分析することができます。

必要な機能がすべて揃ったIDEで、テスト、記録、デバッグが効率化されるだけでなく、Linux、Mac OSX、Windowsなど、Javaと互換性のあるOSからパフォーマンステストを読み込むためのCLIもサポートしています。

注目ポイント

  • 対応プロトコル─HTTPS、HTTP、SAOP、XML、FTPなど
  • 対応技術PHP、NodeJS、ASP.NET、データベース、MOM、LDAP、Javaのオブジェクト、TCPなど
  • 相関機能─HTML、XML、JSONなどの主要レスポンス形式からデータの抽出が可能。
  • 拡張性─プラグイン式およびスクリプト記述可能なサンプラー、プラグイン式のタイマー、データの可視化、分析プラグインなど多くのツールと互換性あり。
  • 統合性─Jenkins、Gradle、Mavenなどのオープンソースツールと統合可能。
  • サポート─開発者や有志メンバーによる大規模なコミュニティやツールの使用方法に役立つドキュメント
  • 価格─オープンソースのため無料

4. LoadNinja

LoadNinja
LoadNinja

SmartBearのLoadNinjaは、負荷テストをすぐに実行できる優れたツールです。高精度かつ実用的なデータで、アプリのパフォーマンス課題を特定することができます。結果のデータはわかりやすく、プログラミングの知識は必要ありません。

LoadNinjaを使い、製品開発チーム、テスター、エンジニアがテストスクリプトの作成に費やす手間を削減することができます。拡張性のあるソフトウェアの構築を後押しする選択肢です。

スクリプトの修正/削除、翻訳、動的値の相関設定の作業を省くことで、テストの質を保ち、クライアント側のインタラクションを記録して、問題を素早く特定・デバッグすることができます。また、TrueLoadの技術により、複数のブラウザで実際のエンドユーザーの体験をテストすることができるため、開発作業が60%以上効率化されます。負荷テストの測定結果は正確かつわかりやすく、コードを記述することなくすぐに再試行することができます。

ステップ数、非同期処理、処理されたリソース、インターフェースのナビゲーションタイミングなどのデータを分析し、機械学習の技術で問題を特定します。

継続的なパフォーマンステストの実施、テスト品質とカバレッジの向上、テストの自動化が可能で、またクラウドベースのため、複雑な設定やメンテナンスは不要です。

注意)SmartBearがLoadNinjaより前にリリースした類似サービスLoadCompleteは、現在も利用できるものの、2019年以降更新がないため非推奨です。

注目ポイント

  • 統合性─同社の独自CI/CDプラグインやREST APIを使ってテストの自動化が可能。
  • サポート─コミュニティ、包括的なドキュメント、よくある質問ページ
  • 価格─年間1,439ドルから(仮想ユーザー数100、最大100時間)

5. Loadero

Loadero
Loadero

Loaderoは、効率的にパフォーマンステストを実施し、システムの問題を素早く検出できるクラウドベースの負荷テストツールです。

フレームワークにSeleniumを使用し、Java、JavaScript、Pythonでテストスクリプトを記述して大規模なテストを実施したり、セッションを記録してデバッグしたりすることができます。テストユーザー、グループ分け、ブラウザ、ネットワーク状況、偽のデータフィードなど、さまざまな設定を行うことができます。

複数のネットワーク設定を行うことで、さまざまな条件下でソフトウェアをテストすることができます。Loaderoのクラウドインフラストラクチャは、メンテナンス不要かつ高いスケーラビリティが特徴です。

また、包括的なレポート、ユーザーのマシン統計、読み込み時間、スクリーンショット、セッション記録を分析する機能があり、システム制限の検出にも有用です。さらに、検証機能が組み込まれおり、テストの実施後に自動的にアサーションが行われます。

注目ポイント

  • 対応ブラウザ─Google Chrome(最新から5つのバージョン)、Mozilla Firefox
  • 再利用可能なテストコード─既存のテスト設定を使ってテストを実行可能。
  • 偽のメディアフィード─マイクやウェブカメラの入力を再現可能。
  • グローバルなテスト─世界12箇所でテストを実行できる。
  • 価格─月額250ドル〜(従量課金制)

6. SmartMeter.io

SmartMeter.io
SmartMeter.io

企業向けパフォーマンステストツールをお探しなら、SmartMeterは試してみる価値ありです。業界トップクラスの機能を手頃な価格で利用することができます。埋め込みブラウザを使用し、テストケースの作成も簡単です。

最も遅い応答時間、エラー、スループットなどを分析し、自動的にテストの成否が判定されるため、継続的インテグレーション(CI)のワークフローにテストを容易に取り入れることができます。

ソフトウェアパフォーマンスの微調整を行うのに便利な詳細レポート、グラフ比較によるリアルタイムのテスト結果、トレンド分析などもSmartMeterの魅力的な機能として挙げられます。

注目ポイント

  • JMeterとの互換性─JMeterの機能をすべて統合でき、高度なテストの実現が可能。
  • 分散負荷テスト─ロードジェネレータを使用し、世界中に無数の仮想ユーザーを生成できる。
  • 価格─月額39ドル〜

7. StormForge

StormForge
StormForge

StormForgeは、アプリのパフォーマンスとスケーラビリティの負荷テストを、良心的な価格でCI/CDのワークフローに組み込むことができる優れたツールです。稼働率やスループットの向上、レイテンシやエラーの低減、より多くのユーザーへ向けた展開を支援してくれます。

少しのリソースで、上記のような機能を自動で実行してくれるため、月々の費用も抑えることができます。また、実際のトラフィックをキャプチャし、テストで本番環境のトラフィックパターンを再現することも。

StormForgeは、負荷を実行するエージェントの数が固定されていないオープンワークロードモデルを採用しており、実際のシナリオを正確に再現することで、より正確な問題を検出することができます。

また、負荷がかかった状態でのアプリのパフォーマンスとSLAを守ることで、問題を最小限に抑え、ユーザー体験を改善することができます。広範な分析とレポートも結果の考察、ベンチマーク、比較に有用です。

注目ポイント

  • 再利用可能CI/CDパイプラインのコードとしてパフォーマンステストを使用できる。
  • クラウドネイティブ─Kubernetes上で動作
  • 対応言語─Java、Nginx、Go、Python
  • 統合性─クラウドサービス(AWS、DigitalOcean、GCP、IBM、Azure)、監視ツール(Prometheus、Dynatrace、Datadog、New Relic、Circonus)、DevOpsツール(Jenkins、Puppet、Chef、Rancher Labs)などのエコシステムと統合可能。
  • 価格─無料版あり(月に3回のテスト)。有料版は1つのアプリケーションあたり月額150ドルから利用可能。

8. LoadView

LoadView
LoadView

LoadViewは、実際のブラウザで数千の同時接続が発生するウェブサイト、API、アプリケーションのストレステストを行うことができる企業向けツールです。

このツールは、AWSとAzureでクラウドネットワークを管理するため、複雑なソフトウェアと組み合わせた複数のテスト設計も可能です。さまざまなシナリオに合わせて、ユーザー、期間、動作を定義し、米国、南米、カナダ、APAC(アジア太平洋)、ヨーロッパの30箇所から、仮想ユーザーを生成可能です。

Load Step(ステップ負荷)、Dynamic Adjustable(動的調整可能)、Goal-based(目標ベース)の3種類の負荷曲線テストを行うことができ、アクセスの急増、スケーラビリティ、インフラの限界点を測定することができます。

注目ポイント

  • 高度なファイアウォール─許可・設定可能な専用IPを取得できるため、ファイアウォールの内側でテストを実行可能。
  • 録画機能─ウェブサイトやアプリのレンダリングを録画することで、より高度な分析と考察。
  • さまざまな機能─参照サーバー、詳細な滝グラフ、動的変数、ロードインジェクタ管理など
  • 価格─月額199ドルから(同時接続ユーザー数1000)

9. NeoLoad

NeoLoad
NeoLoad

NeoLoadを使用すると、アプリケーションやAPIの負荷テストの継続的な実施を自動化することができます。直感的なテスト設計とメンテナンス、さらに実際のユーザーの動きを再現できるのが特徴です。

条件、ループ、ドラッグ&ドロップ式のグラフビルダーで、コードの記述なしでテストを容易に設計することができ、高度なテストが必要であれば、JavaScriptも使用できます。データ形式は、ドメイン固有の、人間でも理解しやすいYAMLを採用。

テストの実施後には、詳細なレポートの確認とインフラストラクチャの監視を行うことができます。

注目ポイント

  • 対応技術─HTML、Angular、HTTP/2、WebSocketなどのウェブフレームワークやプロトコル、Salesforce、SAP、Oracle、IBMなどのパッケージアプリケーション
  • 相関機能─動的パラメータを自動相関し、.Net、Siebel、JSFなどの定義されたルールとともにアプリ固有のパラメータを検出可能。
  • 統合性─Jenkins、Bamboo、TeamCity、Git、SOAP/REST対応、Selenium、Tricentis Tosca、Dynatrace、Azureなどと統合可能。
  • 価格─要問い合わせ

10. LoadUI Pro

LoadUI Pro
LoadUI Pro

LoadUI Proは、SmartBearが提供するReadyAPIの一部で、SOAPやREST API、マイクロサービス、データベースの負荷テストツールです。APIスケーラビリティ/速度の測定、パフォーマンスのプレビューが可能です。2011年にリリースされたLoadUI Proは、Java、Groovy、JavaFXで実装されています。

標準版はオープンソースですが、ProバージョンはSmartBearから提供されています。また、完全クラウドベースなので、メンテナンスや高額な投資いらずです。

並列負荷テスト、エンドポイント負荷テスト、分散負荷テスト、サーバー監視などを行うことができ、必要に応じてサードパーティのプラグインで機能を拡張することもできます。

注目ポイント

  • 対応OS─Mac OS、Windows、Linux
  • 再利用可能─CI/CDパイプラインに既存の機能テストを再利用して作業を効率化。
  • 統合性─機能テストツールSoapUIと統合可能。
  • 価格─年間4,999ドル〜

11. Silk Performer

Silk Performer
Silk Performer

Silk Performerは、モバイル、ウェブ、および企業向けアプリケーションのための強力かつ実用的なストレス/負荷テストツールです。問題の原因と発生場所を的確に特定し、ピーク時のトラフィックにもサーバーとアプリケーションの稼働を保証することができます。

問題を発見し、エンドツーエンドの診断を使用して問題の検出、監視、解決、分離を支援する設計スクリプトです。より良いユーザー体験の提供に利用できます。また、柔軟なレポート機能もあり、グラフやレポートを生成して、好みに応じてレポートを編集することができます。

クラウドのスケーラビリティによって、あらゆる規模のピーク時の負荷を容易に再現することができ、既存のパフォーマンステストを再利用してテストを効率化し、スクリプトを変更することなく、様々なシナリオでテストを実施できます。

Silk Performerは、Performance Explorer、True Log Explorer、Workbenchという3つのコンポーネントで構成されており、組み込みのVPNでインターネットベースのアプリに大きな負荷をかけてテストし、検出した問題を改善することができます。

その他にも、ユーザーフレンドリーなパラメータ化と相関機能、エージェントのヘルス管理、リソース管理、統合サーバー監視、バージョン管理など、さまざまな機能が搭載されています。

また、Silk Performerを開発したMicro Focusは、プロジェクトベースの負荷およびパフォーマンステストツールのLoadRunnerもリリースしています。負荷がかかった状態でのシステムのパフォーマンスと動作を測定し、数千の同時接続ユーザーを再現して、アプリケーションのパフォーマンスを記録・分析することができます。

注目ポイント

  • 対応プロトコル─HTTPS、HTTP、HTML、SMTP、POP、TCP、IP、FTP、.NET、SOAP、XML、LDAPなど
  • グローバルなテスト─世界50箇所以上でテストを実行可能。
  • 対応技術─Google Cloud Platform、Azure、AWS
  • 価格─要問い合わせ(無料トライアルあり)

12. AppLoader

AppLoader
AppLoader

AutomaiのAppLoaderは、アプリサーバーやVDI(仮想デスクトップ)にコードやソフトウェアを必要としない自動パフォーマンスツールです。デスクトップGUIとアプリに一括アクセス可能なボットを搭載し、実際のパフォーマンスを調べることができます。

AppLoaderを使用すると、プロトコルの制限を気にすることなく、思い通りのテストを実行できます。定型スクリプトとログイン時間によって、負荷に応じた独自のワークフローを容易に構築可能です。

生成される(コードの記述不要)スクリプトを使用することで、自動化の施されたテストケースをものの1分で構築可能。ボットを再生・表示し、必要に応じていつでもテストにロジックを追加・編集することができます。また、アクセスポイントを通じて複数のアプリと連携できるため、プラグインやAPIは不要です。

テストが失敗すると、すぐにスクリーンショットが表示され、原因の特定と問題の解決を行うことができます。さらに、全体のパフォーマンス指標や立ち上がり時間も1つの管理画面から監視可能です。

加えて、メンテナンスが容易で、既存のコンポーネント、セクション、シナリオを再利用できます。必要に応じて画像を撮り直したり、操作を編集したり、アプリケーションの変更やアップグレードに応じて、スクリプトセクションを変更したりすることも。

注目ポイント

  • ロボットによる自動化─アプリサーバーやVDIへのインストールは不要。
  • わかりやすいテストシナリオ─コンポーネントを一目で確認でき、操作の検索やトランザクションの定義をいつでも実行可能。
  • 価格─要問い合わせ(無料トライアルあり)

13. Gatling

Gatling
Gatling

2012年に登場したGatlingは、Scalaで構築されたアプリケーション向けのオープンソース負荷テストツールです。クラッシュやレスポンスの遅れを予測してクラッシュを回避し、問題を初期段階で検出することで、市場投入までにかかる時間を短縮。ユーザー体験を向上し、事業の拡大を支えてくれます。

また、コード連携スクリプトにより、テストシナリオの管理・自動化が容易なのも特徴です。継続的な負荷テストを考慮した設計で、開発パイプラインに簡単に統合することができます。さらに、ウェブレコーダーも搭載されています。

注目ポイント

  • 読みやすいDSL─ドメイン固有言語(DSL)によってテストシナリオの把握が容易。
  • 分析機能─1秒に数千回のユーザーリクエストを再現することができ、高精度の指標を実現。
  • 価格─無料

オープンソースツールに加えて、テスト自動化と統合に有用な高度な機能と測定基準を搭載した商用ツール、Gatling Frontlineも。オンプレミスプランは月額485ドルから、クラウドプランは1時間あたり3ドルから利用可能。

14. BlazeMeter

BlazeMeter
BlazeMeter

BlazeMeterは、2011年にリリースされた企業向け負荷テストツール。シフトレフトテストを行うことができます。また、2020年にはソフトウェアテスト自動化ツールとして、Gartner peer insights Customers’ Choiceを受賞しています。

直感的なUIにより、負荷テストを作成したり、既存のスクリプトを再利用したりすることで、テストをCI/CDパイプライン内で実行します。また、オープンソースのツールチェーンを利用し、世界56拠点から数千の仮想ユーザーを再現することができます。到達率、1秒あたりのヒット数、スレッドをリアルタイムで制御することも可能です。

また、過去の傾向を分析し、ソフトウェアのパフォーマンス向上に活かすことができる詳細なレポートも有用です。システム全体を可視化し、レイテンシやレスポンスの遅延を再現して、パフォーマンスと品質を確保するモックアップサービスも利用できます。

注目ポイント

  • 360度のAPIテスト─コードの健全性を確認し、API呼び出しのコンテンツと構造が期待通りのデータを返すようにAPIを素早く監視。
  • 統合性─Apache JMeter、Taurus、Gatling、Seleniumと統合可能。
  • 価格─無料プラン(同時接続ユーザー数50、テスト回数10回)と有料プラン(同時接続ユーザー数1000、テスト回数年間200回)

15. Rational Performance Tester

Rational Performance Tester
Rational Performance Tester

IBMのRational Performance Testerは、サーバーベース/ウェブベースのアプリケーションの自動パフォーマンステストツール。負荷テストを実施して、アプリケーションの動作を検証し、パフォーマンスのボトルネックを見つけ出すことができます。

このツールでは、IBM Tivoliの製品を使ってJ2EEインターフェースやアプリの速度低下の原因を突き止め、高度な環境分析を行うことができます。また、テストスクリプトはコードなしで作成できるため、簡単にテストを実施でき、手間の削減にもつながります。テストの詳細はテキストエディターにアクセスして監視可能です。

根本原因を分析して、アプリケーション層とソースコードのボトルネックを特定。また、シーケンス図からアクティビティを追跡し、リソース統計を確認することができます。

注目ポイント

  • 対応技術HTTP、SIP、SAP、Citrix、Siebel、TCP Socketなど。グラフィカルなテスト計画機能で、自動化されたデータ関連管理が可能。
  • リアルタイムのレポート─リアルタイムのスループットとパフォーマンスレポート、設定とフィルタリング、応答時間などの高度なインサイトとパフォーマンスの傾向を確認できる。
  • 価格─要問い合わせ

16. k6

k6
k6

(旧名称「Load Impact」)k6は、サイトやAPIをテストするためのオープンソースのSaaS、負荷テストツールです。合格/不合格の基準を設定でき、CIパイプラインへの統合と自動化が容易です。

柔軟で使いやすく、機能豊富なCIツールで、テストビルダーやコンバータ(Postman、Swagger、JMeter)、レコーダーで、テストとQA(品質保証)を素早く実行することができます。豊富なドキュメントや手厚いサポートも魅力です。

k6では、クラウドとローカルのテストに同じスクリプトを使用できるため、実際の状況をリアルに再現することができます。また、ES6 JSで強力なスクリプトを使用し(DSLやXMLは不要)、アプリケーションとインフラのパフォーマンス確保のため、テストは自動化されます。さらに、独自のスクリプトでSLOを設定し、ソフトウェアの健全性もチェックすることができます。

注目ポイント

  • 対応プロトコル─HTTP/1.1、HTTP/2、WebSocketなど
  • 対応OS─Mac OS、Linux、Windows
  • 統合性─Kafka、Azure、GraphQL、Grafana、Datadog、GitLab、CircleCI、GitHubなど、20以上のサービスと統合可能。
  • 価格─無料トライアルあり(テスト回数50回)。有料プランは月額89ドルから(仮想ユーザー数100、テスト回数年間600回)利用可能。

17. Eggplant

Eggplant
Eggplant

Eggplantは、スケーラブルで応答性の高いアプリケーションの負荷テストに有用で、エンドユーザーのエンゲージメントを高めることができます。シンプルなツールで、実際のユーザー重視のテストを実行可能です。

優れた再現機能を搭載しており、ネットワークプロトコルとアプリケーションのUIレベルの両方で仮想ユーザーを生成し、UIのパフォーマンスを詳細に把握することができます。高いスケーラビリティ、オープンソースかつ複数のプロトコル対応で、テストで見つかった問題の解決にも打ってつけです。

注目ポイント

  • テストの制御─テスト実行中の制御が簡単。
  • 分析機能─リアルタイムテスト解析とレポート機能で、問題の特定と解決を効率化。
  • 価格─要問い合わせ(体験版あり)

18. Loadster

Loadster
Loadster

Loadsterは、ウェブアプリケーション向けの負荷テストツールです。大きな負荷を扱うことができ、パフォーマンスの最適化、システムのダウン回避、ひいては費用の削減が期待でき、REST、JSON-RPC、GraphQL、XML-RPCなど、あらゆる種類のHTTP APIのテストを実施できます。

高度な検証ルールでエラーを検出し、値を記録して後で再利用することができます。また、Loadster Recorder(無料のブラウザ拡張機能)でスクリプトを記録し、ブラウザで編集することができます。

さらに、簡単な設定で世界各地でクラウドテストを実施することができ、クラウドインスタンス間で1000ボットを作成可能です。

注目ポイント

  • リアルタイム指標─テスト実施中にエラー、スループット、応答時間の情報をリアルタイムで取得し、レポートを自動生成可能。
  • 価格─従量課金制プランは月額97ドル(1000ボット/時間)から、月額プランは399ドルから利用可能。

19. Akamai CloudTest

Akamai CloudTest
Akamai CloudTest

Akamai CloudTestは、お使いの環境でストレステストを実施することができる優れたツールです。アプリケーションやウェブサイトが突然のトラフィック急増に対応できるかどうかを調べることができます。拡張性に優れた堅牢なプラットフォームで、大規模なイベントを正確に制御・再現し、リアルタイムの分析でボトルネックを特定します。

操作性が非常に高く、開発、プロビジョニング、テストの実行、高度なインサイトの取得が容易です。少ないリソースで高度なテスト結果を得ることができるのが魅力的です。

注目ポイント

  • 即座にテストを実施─コード不要ですぐにテストを実行できる
  • 価格─無料プランあり(同時接続ユーザー数100)。オンデマンドプランは2,500ドルから利用可能。

20. Parasoft Load Test

Parasoft Load Test
Parasoft Load Test

Parasoft Load Testも、シンプルで使いやすいお勧めの負荷テストツールです。インテリジェントなユーザーインタフェース搭載で操作が簡単。さらに、スクリプト拡張機能で、機能を追加することができます。

ストレステスト、耐久テスト、コンポーネントテスト、スパイクテスト、インフラテスト、スケーラビリティテストなど、さまざまな種類のテストを実行できます。

また、JUnitテストをインポートすることで、コードベースの特定の部分を分離し、初期段階の負荷テストを行うことができます。QoS指標を用いたテスト結果分析の自動化や、主要なAPMシステムの連携も実現できます。

注目ポイント

  • 高い費用対効果─AWSなどのクラウドサービスを利用してオンデマンドでテストを実行するため、ハードウェアが不要。
  • 価格─要問い合わせ

21. Locust

Locust
Locust

Locustは、Pythonコードでユーザーの動作を定義し、一度に数百万の仮想ユーザーをシステムに投入できるオープンソースの負荷テストツールです。複数のマシンにテストを分散し、容易に膨大な数の仮想ユーザーを生成できるため、スケーラブルなパフォーマンステストを実施可能です。

非常に実用的なツールで耐久性に長けており、ピーク時のトラフィックなど大きな負荷も問題なく扱うことができます。また、煩雑なUIやXMLは使用せず、基本的でわかりやすいコード記述が特徴で、シンプルなPythonでコードを書くことができます。

注目ポイント

  • 簡単インストール─PyPIからpipで簡単にインストール可能。
  • 価格─無料

22. nGrinder

nGrinder
nGrinder

nGrinderは、テストスクリプト作成の実行、効率的なテストの実施、サイトやアプリケーションの監視、テスト結果の生成などの機能がある、企業向けのオープンソーステストツールです。Jythonスクリプトを使用して、複数のエージェントを利用したテストシナリオを作成できます。

包括的なテスト環境を搭載しており、テスト過程で発生する不具合を改善できるストレステストを実行でき、負荷テストツールのThe Grinderをベースにアーキテクチャが改善されて、よりテストが実行しやすくなっています。

インストール済みのエージェントを割り当て、さまざまなネットワーク領域に展開することで、複数の拠点でテストを実行します。加えて、Subversionを埋め込んでスクリプトを管理したり、エージェントの状態を監視してマシンに対するストレスを測定したりすることも可能です。

注目ポイント

  • 拡張性─カスタムライブラリでテストを無制限に拡張でき、効率性を維持しながら複数のテストを同時に実行可能。
  • 互換性─後方互換性を保ちながらDocker上で実行可能。
  • 価格─無料

23. Loader.io

Loader.io
Loader.io

Loade.ioは、ウェブアプリケーションやAPIのための無料ツール。数千の同時接続を処理することができ、クラウドベースのパフォーマンスと負荷テストを簡単に実行することができます。

手順はアプリケーションを登録し、APIまたはウェブインターフェースを使ってテストを開始し、特定の期間の接続を再現するだけ。

ストレステストや負荷テストをリアルタイムに監視し、レポートはチーム内で簡単に共有可能です。グラフや統計情報を用いたインタラクティブなデータ表現が特徴で、いつでもどこからでも確認することができます。

注目ポイント

  • 統合性─デプロイメントパイプラインと統合し、機能の拡張が可能。
  • 価格─無料プランあり(1テストにつき1万ユーザー)。有料プランは、月額99.95ドル(1テストにつき10万ユーザー)から利用可能。

24. SolarWinds

SolarWinds
SolarWinds

SolarWindsは、アプリケーションとネットワークサービスのパフォーマンスの可視化に便利なツールです。問題の根本原因を検出し、素早く改善することができます。

実用的なインサイトを元に、ネットワークのダウンの発生率を低減することができます。さらに、デバイスのパフォーマンスとネットワークの可用性を継続的に監視することで、広範なネットワークパフォーマンステストが行えます。

また、インテリジェントなネットワーク通知機能があり、重要なパフォーマンス指標が事前に定義された値を超えると警告が表示される仕様です。

注目ポイント

  • データ分析─ネットワークを監視することで問題を即座に解決可能。
  • 価格─1,638ドル〜

25. Test Studio

Test Studio
Test Studio

Telerik提供のTest Studioは、ウェブ/モバイル/デスクトップアプリケーションのGUI用の負荷テストツールです。すべて自動化されており、直感的なUIでコード有り・無しのテストを実施できます。

テストのメンテナンスを最小限に抑えつつ、高速なテストレコーダーを使ってテストの高い信頼性と安定性を確保。さらに、カバレッジを最大化し、最適化されたパフォーマンスが保証されます。

内蔵のテスト計画機能を使用するか、CI/CDセットアップにテストツールを統合することで、安定したテストをすぐに実行できます。また、パフォーマンステストを記録し、自動再生によって素早く容易にテストを実行し、異なるブラウザでテストすることも可能です。

注目ポイント

  • 管理画面─ウェブベースのレポート、結果、ダッシュボードでアプリのパフォーマンスを監視可能。
  • 価格─月額39ドル〜(利用ユーザー単位)

26. Taurus

Taurus
Taurus

Taurusは、継続的テストを自動化するツールで、煩わしい反復的なテストを省くことができます。また、SeleniumやJMeterなどと統合して機能を拡張することも可能です。

シンプルなツールで、コードを大量に書くなどの手間がかからず、テストの計画、実行、結果の取得が簡単です。また、統一された管理しやすいDSLを利用すれば、ゼロからテストを設計することも可能です。

注目ポイント

  • 統合性─JMeterやSeleniumなどとシームレスに統合可能。
  • 価格─無料(便利なドキュメントあり)

その他のパフォーマンステストツール:OpenSTA、The Grinde、ApacheBench、Tsung、Experitest、ZebraTester、Artillery、Applause、J-hawk、Paessler Security、Dynatrace、Zabbix

パフォーマンステストツールは、ただ目に留まったものを利用することは避けてください。きちんとウェブサイトやウェブアプリケーションに必要なテスト要件を書き出して、適したものを選びましょう。また、価格が機能に見合っているかの確認もお忘れなく。

ちなみに、Kinstaでウェブサイトを運用すれば、ツール探しの手間が省けます。と言うのも、コントロールパネルのMyKinstaには、パフォーマンス監視ツールのKinsta APMが組み込まれおり、追加費用なしでお使いいただけます。併せて、以下部門ごとのお勧めツール一覧も参考にしてみてください。

ネットワークパフォーマンス向けお勧めテストツール

パフォーマンステストのお勧め自動化ツール

ウェブアプリケーション向けお勧めテストツール

ウェブサイト向けお勧めテストツール

  • SolarWinds
  • Paessler Security
  • Network Monitor
  • Dynatrace
  • Zabbix
  • NeoLoad
  • Taurus
  • Eggplant
  • Rational Performance Tester
  • WebLoad
  • Apache JMeter
  • Silk Performer
  • StormRunner
  • Locust
  • Kinsta APM
  • LoadView
  • Loadster
  • Applause
  • StormForge

用途に合わせたツールの選び方

さて、上記でご紹介してきた通り、パフォーマンステストツールにはかなりの数の選択肢があります。最後に、自社のプロジェクトに適したツールを選ぶ際に、考慮すべき点も押さえておきましょう。

1. 使いやすさ

テストの実施にあたって、扱わなければならない問題が増えることのないように、テストツールの使いやすさは確認しておきましょう。例えば、すでにチームで使用しているツールがあれば、新しい選択肢に目を向ける前に、テストの実施に十分な機能が揃っているかをチェックしてみてください。十分な機能があれば、ソフトウェアの習得に費やす時間を削減することができます。

新たにツールを使用する場合は、使いやすいGUI(グラフィカルユーザインタフェース)のあるものを選び、拡張可能な分析プラグインを組み合わせて使用することをお勧めします。

2. テスト環境の有無

パフォーマンステストには、十分なネットワークとハードウェアリソースが用意されたテスト環境が不可欠です。今回ご紹介したほとんどのツールには、テスト環境が組み込まれています。

検討しているツールに予想されるアクセス数を適切に再現できるテスト環境が搭載されているかどうか、確認しておくことも大切です。

3. ツールの性能

パフォーマンステストツールの性能は、1つのデバイス上でテストを実行する際に設定できる仮想ユーザーの数に比例します。

少ないデバイスで大規模なテストを行うことができれば、より効率的です。したがって、現在のハードウェアで想定される仮想ユーザー数を生成できるかどうかも重要な指標になります。

4. スケーラビリティ

パフォーマンステストツールのスケーラビリティは、選択したプロトコルとテスト環境の構成で決まります。ツールのスケーラビリティを確認するには、パフォーマンステストツールのPoC(概念実証)を行うのが得策です。

PoCは、製品やアイデアが実現可能かどうかを検証するのに適した方法で、テスト段階で、顧客からのフィードバック、ビジネス分析、競合調査、売上予測、マーケティング戦略などの貴重な情報を手にすることができます。

5. プロトコル対応

HTTPS、HTTP、SSH、FTP/STFPなど、さまざまなアプリケーションプロトコルがあります。採用するプロトコルをサポートするツールを選択してください。

また、公式のドキュメントにプロトコルに関する記載がなければ(特にCitrixのような複雑なプロトコルを採用する場合)、プロトコルに対応しているかどうかをプロバイダーに直接確認することをお勧めします。

6. ライセンス料

パフォーマンステストツールを使用するにあたって、ライセンスが課題になることも。通常であれば、商用ツールには優れたプロトコルサポートがありますが、一定の制約もあります。したがって、ツールを購入する前に、必ずライセンスを確認しておきましょう。有料ツールを使用する場合は、価格と機能を確認し、類似ツールと比較した上で、予算内に収まるものを選んでください。

7. 統合性

パフォーマンス監視、分析、欠陥・要件管理などの機能と統合できるのが理想的です。分析や監視に関しては、テストツールで確認できる指標の性質を知るのに役立ちます。さらに、テストを追跡し、懸念点を素早く見つける方法もわかります。

例えば、StormForgeはAWS、GCP、IBMなどのクラウドサービス、Prometheus、Datadog、Circonusなどの監視ツール、Jenkins、Puppet、Rancher LabsなどのDevOpsツールとシームレスに統合可能です。

8. 柔軟性と適応性

1つのパフォーマンステストツールが、テストに必要な機能をすべて揃えているとは限りません。したがって、他のサードパーティツールと統合して、機能の拡張が行えるかどうかも事前に確認しておくことをお勧めします。

例えば、Apache JMeterは柔軟性に優れており、プラグイン式サンプラー、Groovyなどのスクリプト記述が可能なサンプラー(サーバーにリクエストを送信するコンポーネント)、プラグイン式タイマー、データ可視化アドオン、分析プラグインなど、さまざまなツールと連動可能です。

9. サポート

最後に、どのようなカスタマーサポートを受けられるかを確認しておくことも忘れずに。通常、商用ツールであれば、複数のサポートチャネルやドキュメントを通じて、質の高いサポートを提供しているはずです。

オープンソースソフトウェアであれば、コミュニティサポートの充実度、フォーラム、ユーザーの活動状況などを確認しておきましょう。

まとめ

読み込みに時間のかかるウェブサイトやアプリは敬遠されるもの。待たされている間に、多くのユーザーが他の選択肢に目移りしてしまい、最終的に事業が失敗に終わってしまうなんてこともあり得ます。サイトやアプリケーションの高速化が当然のように求められるのが現状です。

サイトやアプリケーションのパフォーマンステストを実施して、表示速度を改善し、最適化した状態でソフトウェアをローンチすれば、ユーザーの信頼を獲得することができます。また、テスト結果をもとに問題点の修正を行えば、コンバージョン率も高まるはずです。

現在、パフォーマンステストツールは無数に存在しています。今回の記事を参考に、ウェブサイトやアプリケーションの目標や用途に合わせて適切なツールを見つけてみてください。

パフォーマンステストにどのツールを使用していますか?コメント欄でぜひお聞かせください!

Amrita Pathak