Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / ソリューション / 負荷テストとは?そのやり方を分かりやすく解説

負荷テストとは?そのやり方を分かりやすく解説

負荷テスト(Load Testing)は、ソフトウェアやシステムの性能を評価するために行われるテスト手法の一つです。本文では、一番使いやすくて直感的な負荷テストツールのApidogと最も有名な負荷テストツールのJMeterで負荷テストを行う方法を紹介します。

負荷テストとは

負荷テスト(Load Testing)は、ソフトウェアやシステムの性能を評価するために行われるテスト手法の一つです。負荷テストでは、特定の負荷条件の下でシステムがどの程度のトラフィックや処理量を処理できるかを評価します。

負荷テストでは、通常、以下のような目的があります。

  1. 性能評価: システムの性能や応答時間を評価し、ユーザーがシステムを使用する際の体験を向上させるために問題を特定します。性能のボトルネックや瓶頸現象を発見することが目的です。
  2. スケーラビリティ評価: システムが負荷増加に対してどのようにスケーリングするかを評価します。追加のユーザーやトランザクションが増加した場合に、システムが効率的に処理できるかどうかを確認します。
  3. 安定性評価: 長時間の負荷条件下でシステムが安定して動作するかどうかを評価します。リソースのリークやメモリ不足、デッドロックなどの問題を特定するために行われます。

負荷テストでは、通常、ユーザーの予想される利用パターンやトラフィック量に基づいて、実際の負荷を生成するためのツールやスクリプトを使用します。これにより、システムの性能や振る舞いに関する情報を収集し、問題や改善点を特定することが可能となります。

負荷テストは、システム開発の早い段階から行われるべきであり、定期的な実施が推奨されます。これにより、システムのパフォーマンスや信頼性を向上させることができます。

負荷テストの評価指標

負荷テストの評価指標は、システムの性能や応答時間、負荷耐性などを測定するために使用されます。以下に一般的な評価指標のいくつかを示します。

  • 応答時間(Response Time): システムがリクエストに対して応答するまでの時間を測定します。通常、ユーザーがシステムの応答を待つ時間として重要な指標とされます。応答時間が長い場合、ユーザーエクスペリエンスが低下する可能性があります。
APIの応答時間
  • 同時ユーザー数(Concurrent Users): システムが同時に処理できるユーザーの数を測定します。システムが一度に処理できる負荷に対して十分なキャパシティを持っているかどうかを判断するために使用されます。Apidogを使用する場合、スレッド数を設定することにより、同時ユーザー数を模擬することができます。
Apidogでテストのスレッド数を設定
  • スループット(Throughput): 単位時間あたりに処理されるリクエストやトランザクションの数を測定します。スループットは、システムが負荷下でどれだけの処理を実行できるかを示す指標です。
  • CPU使用率(CPU Utilization): システムのCPUの利用率を測定します。高いCPU使用率は、システムが負荷下で十分な処理能力を持っていることを示す一つの指標です。一方、過剰なCPU使用率は、性能のボトルネックを示す可能性があります。
  • メモリ使用量(Memory Usage): システムのメモリ使用量を測定します。メモリ使用量が高い場合、システムが負荷下でメモリリークや不足を引き起こす可能性があります。
  • エラーレート(Error Rate): 負荷下で発生するエラーの割合を測定します。エラーレートが高い場合、システムが負荷に耐えられない可能性や、特定の負荷条件下での問題を示す可能性があります。

これらの評価指標は、負荷テストを通じてシステムの性能や耐性を定量化するために使用されます。また、負荷テストの結果から問題やボトルネックを特定し、改善点を見つけるための手がかりとなります。

おすすめ:使いやすい負荷テストツール

負荷テストを行うために、一番効果的な方法は、負荷テストツールを導入することになります。次は、一番使いやすくて直感的な負荷テストツールのApidogと最も有名な負荷テストツールのJMeterで負荷テストを行う方法を紹介します。

Apidog - 直感なUIで負荷テストを行う

ApidogはAPIの設計、開発、デバッグ、テスト、モックなどの機能を一体化した包括的なAPI管理ツールとして、非常に分かりやすいUIを提供しています。このUIのお陰で、非常に直感的な操作によって、負荷テストを行うことができます。それでは、次の操作手順を参照してみましょう。

button

ステップ⒈ プロジェクトを選択して、左側メニューから「自動テスト」を選択して、「」ボタンをクリックして、「新規テストケース」を選択します。

Apidogで新規テストーケースを作成

ステップ⒉ここで新規テストケースの各項目を設定して、「確認」ボタンを押します。

新規テストケースの情報を入力

ステップ⒊ テストのステップを追加します。APIのテストケースから、APIからインポートすることもできますし、カスタムRequestを追加することもできます。また、必要に応じて、グループ、繰り返し、条件分岐、待ち時間などの項目を設定することも可能です。

テストステップの追加

ステップ⒋ 負荷テストを行うには、右側のメニューで負荷テストの設定項目を自分のニーズに応じてカスタマイズすることができます。

負荷テストの設定

往復:設定したテストのステップを繰り返し回数を設定します。

スレッド数:同時に実行状態に置くことができるプログラム数を設定します。

ステップ⒌ 設定が終わると、「実行」ボタンをクリックして、負荷テストを開始します。テストプロセスが終わると、詳細のテストレポートが生成され、各リクエストの詳細情報も確認できます。

テストのレポートの取得

ここでApidogによるシンプルな負荷テストのプロセスが終わります。最後に生成されたテストレポートで全てのリクエストの詳細を確認することもできますし、負荷テスト全体の状況を確認することもできます。

button

また、Apidogは、JMeterのフォーマットとしてエクスポートすることもできますので、Apidogの負荷テスト機能が需要を満たさない場合、テストケースをJMeterのフォーマットとしてエクスポートすると、シームレースにJMeterでより高度な負荷テストを行うこともできます。

JMeterのフォーマットとしてエクスポート

JMeterで高度な負荷テストを行う

Apache JMeterは各種負荷テスト、性能テスト、機能テストを実行するためのJavaフレームワークです。Webアプリケーション、データベース、FTP、SMTP、SOAP、RESTなどを含む様々なプロトコルと技術をサポートし、テスト担当者がテストケースを設計、実行、分析するのに役に立ちます。

Apache JmeterのUI

JMeterで負荷テストを開始するには、先にエクスポートしたJMeterのファイルをJMeterにインポートすると、負荷テストの配置の手間を節約することができます。

JMeterで負荷テストを行うために、以下の手順を参照してください。

  1. JMeterのダウンロードとインストール: Apache JMeterの公式ウェブサイトからJMeterをダウンロードし、インストールします。
  2. テスト計画(Test Plan)の作成: JMeterを起動し、新しいテスト計画を作成します。テスト計画は、負荷テストの設定やシナリオ、スレッドグループなどを含む、負荷テストの基本的な構成要素です。(ここでApidogからエクスポートしたファイルをインポートしましょう。)
  3. スレッドグループの追加: テスト計画内にスレッドグループを追加します。スレッドグループは、ユーザーの振る舞いやトランザクションの挙動を定義します。例えば、同時にアクセスするユーザー数やループ回数を設定します。
  4. サンプラーの追加: スレッドグループに対してHTTPリクエストやデータベースクエリなどのサンプラーを追加します。これらのサンプラーは、実際のリクエストをシミュレートしてサーバーに送信します。
  5. リスナーの追加: テスト結果を収集するために、リスナーを追加します。リスナーは、テスト結果をグラフやテーブル形式で表示したり、ログに出力したりする役割を果たします。
  6. 負荷テストの設定: スレッドグループやサンプラーに対して、負荷条件や振る舞いの設定を行います。例えば、同時ユーザー数、リクエストの送信間隔、ランダムデータの生成などを設定します。
  7. テストの実行: テスト計画を保存し、テストを実行します。JMeterは、指定された負荷条件の下でリクエストを送信し、サーバーの応答を収集します。
  8. テスト結果の分析: テスト実行後、リスナーによって収集されたテスト結果を分析します。応答時間、スループット、エラーレートなどの評価指標を確認し、システムのパフォーマンスや挙動に関する洞察を得ます。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。