通称「ab」と呼ばれている性能テストツール、Apache Bench について紹介します。実行結果の出力方法は、CSVとHTMLで行うことができ、標準的な出力が可能です。本ツールの特徴や注意点を詳しくまとめていますので、興味のある方はぜひ参考にしてみてください。
Apache Bench は、Webサーバーやアプリケーションサーバのテストに活用するととても効果的であることが特徴です。1回のコマンド実行で、単一のURLに対するリクエストを指定分のみ生成できるからです。またテストする対象が動的に生成されるページであっても、URLを固定しておくことで適用させることができるので、とても便利です。
またテストを行う際には、インターネット環境やLAN環境を経由させることで、よりリアルに近い形態でのシミュレートを可能にします。
Apache Bench のテスト内容は、指定したURLに対して高い頻度で連続アクセスを行うことです。対象にできるURLは1つのみであるため、何個も設定してテストをすることが難しいですが、TOPページをはじめとしたアクセスが多いとわかっているページや高負荷がかかっていると考えられるページが、どれだけのアクセスに耐えられるかを検証することができます。
社内の少数メンバーで使う小規模なシステムや、単発で済む程度の負荷テストであれば、フリーの負荷テストツールでも十分です。ただし負荷は一度解消したからといって二度と発生しないわけではなく、アップデートの度にテストが必要になるケースも多いのが実情。
負荷テストサービス会社の中には、検出したバグを分析した上で改善アクションまで踏み込んでくれるところがあります。同じ依頼をするなら、こういった改善までできる会社がおすすめです。というのも、エンジニアが本来の開発に集中でき、自動的に不具合やバグの報告が上がり適宜改善してくれる仕組みこそが、理想の開発環境と言えるからです。
当サイトでおすすめしている3社は、すべてこの要件を満たしています。あなたが抱えている課題を、それぞれの会社が持つ「独自の強み」で解決してくれますので、ぜひ依頼先選びの参考にしてみてください。
改善アクションまで任せられる
負荷テストサービス会社 3選を見る
| オプション | 説明 |
|---|---|
-n <数値> |
合計リクエスト数を指定。テスト全体で発行するHTTPリクエストの総数を設定。 例: -n 1000 で1000回のリクエストを送る。 |
-c <数値> |
同時並列数を指定。一度に何リクエスト分の接続を張るか設定。 例: -c 50 で一度に50接続。 |
-t <秒数> |
サーバーからのレスポンス待ち時間を秒数で指定。タイムアウト時間設定。 |
-A <ユーザ:パスワード> |
ベーシック認証がかかっているページに対してテストを行う場合に、認証情報を指定。 |
-P <プロキシユーザ:パスワード> |
認証付きプロキシを経由してリクエストを投げる場合に指定。 |
-X <プロキシ:ポート> |
プロキシ経由でテストする場合に指定。-X proxy.example.com:8080 のような形。 |
-e <ファイル名> |
結果をCSV形式(ヘッダー付き)でファイルに出力。Excelなどで分析する際に便利。 |
-v <レベル> |
デバッグ出力レベルを指定(詳細なHTTPヘッダーなどを表示)。 |
-h |
ヘルプを表示。利用可能オプションの一覧が確認できる。 |
Apache Benchでは単一しかURLが使えないので、大きな負荷を発生させてしまうと、CPUが足を引っ張ってしまう恐れがあります。また、負荷のボリュームが少ない時にはうまく実行できますが、大規模な性能テストで用いるにはおすすめしません。
Apache Benchは、単一のURLへのリクエストを生成するツールであり、シナリオを生成して行うテストには向いていない点が注意すべきところです。リアルのWebサイトであれば、ユーザシナリオが多数存在することが多いです。つまり複数のURLをテストする必要性が出てくるのですが、本ツールでは対応することができません。
また、静的なWebサイトに対するテストを行う際にも注意が必要です。ページにCSSや画像が埋め込まれていた場合、それらを読み込むのに時間を要してしまい、意図しているテストを実施できない可能性があるからです。
負荷テストサービス会社は数多くありますが、それぞれ得意とする領域は違います。
原因特定力が高くスピーディに解決できる会社もあれば、アフターサポートが手厚い大手ソフトウェアテスト会社、インフラレベルの大規模テスト実績が豊富な会社など、強みも様々。
ここでは代表的な3つのニーズに分けて、おすすめの会社を紹介しています。
\スピーディな負荷改善/
\安心サポート/
\大規模&高負荷/