Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

JMeterでWebアプリケーションのパフォーマンス測定を行う

オープンソースの負荷テストツールJMeterの利用

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/03/14 12:00

多くのリクエストを処理しなければならないWebアプリケーションでは、十分なリクエストを処理できるだけの耐久性が求められます。本稿では、それを調査するために、Apache Jakarta Projectで開発が進められているJMeterを使用して、Webアプリケーションの負荷テストの方法を解説します。

目次

はじめに

 筆者がこれまで見てきたWebシステムの中には、機能仕様を満たしているものの、パフォーマンスの点でユーザが大きな不満を抱えているケースが珍しくありませんでした。その理由として、負荷テスト(または、ストレステスト)がほとんど行われていない、または全く行われていないケースであることが多かったのです。不特定多数のユーザが利用するWebアプリケーションでは、どれほど便利な機能があったとしても、十分なパフォーマンスが出なければ、ユーザビリティを損なってしまいます。

 そこで、本稿では負荷テストツールであるJMeterを使い、Webアプリケーションに対して負荷テストを行う方法を解説します。

対象読者

 Webアプリケーションの開発を行っていて、JMeterを使った基本的な負荷テストの方法を学習したい方。開発言語は問いません。

環境

必須環境

 本稿では、JMeterとテスト対象Webアプリケーションが正しく動作する環境が必要です。Webアプリケーションは、J2SE Development Kit 5.0 Update 6、Tomcat 5.5.12にて動作確認をしています。環境についての詳細や設定方法については、「サーバサイド技術の学び舎 - WINGS」にある「サーバサイド環境構築設定」を参照してください。JMeterはバージョン2.1.1で動作確認をしています。

推奨環境

 正しい負荷テストを行うには、テスト内容に応じたネットワーク環境、端末が必要です。本稿では、読者がすぐに実践できるように端末一台でテストする場合について解説しています。しかし、正しくテスト結果を得るには、Webアプリケーションが動作する端末(サーバー)とJMeterを動作させる端末(クライアント)を分ける必要があります。また、クライアント端末の処理能力によって生成できる負荷にも限度があるため、与える負荷の大きさによっては複数台のクライアントが必要であることも覚えておいてください。

JMeter

 JMeterは、Apache Jakarta Projectで開発が進められている負荷テストアプリケーションです。Webアプリケーション(HTTPベースのアプリケーション)に限らず、FTP、JDBC、LDAPなどのインタフェースをもったアプリケーションに対して負荷テストを行うことができます。また、負荷テストの機能以外にもアサーションなどの単純なテスト機能も備わっています。

 Webアプリケーションの負荷テストが行えるツールとして、他にもOpenSTA、Mercury LoadRunnerなど優れたツールが存在しますが、以下のポイントからJMeterを取り上げます。

100% pure Javaである

 Javaで記述されているためOS環境を問いません。UNIX環境からコマンドラインで操作することももちろん可能です。

オープンソースである

 オープンソースであるため、導入コストが少なくてすみ、コミュニティも活発です。負荷テストツールの中には、Mercury LoadRunnerのように非常に高機能である反面、導入コストが高いものも多く存在しています。システムの規模によっては有力な選択肢になりますが、今回は導入のしやすさからJMeterを解説したいと思います。

操作が簡単である

 操作がシンプルでCUIはもちろんGUIでもテストを行うことができます。

負荷テスト対象アプリケーションの概要

 テスト対象のアプリケーションに、簡易的な一行メモ帳の機能を持つWebアプリケーションを使用します。機能と画面フローの図を解説します。

負荷テスト対象アプリケーションの画面フロー
負荷テスト対象アプリケーションの画面フロー
  • 適当なユーザIDでログインができ、ログインするとユーザ専用のメモ帳保存フォルダが作成され、メモを入力できる画面に遷移する。
  • メモの内容を入力して、[メモ追加]を押下することにより、メモの情報が一つの新しいファイルとして生成される(メモの数だけファイルが存在)。
  • メモを入力する画面では、表示する度にファイルからユーザの全てのメモを読み込んで表示する。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 佐藤 真介(サトウ シンスケ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5