InfoQ

News

JMeterとAntによる自動負荷テスト

作者 Alexander Olaru, 翻訳者 大田 緑 - (株)チェンジビジョン 投稿日 2008年4月29日 午前6時44分

コミュニティ
Java
トピック
ソフトウェアテスト,
パフォーマンス&スケーラビリティ
タグ
CruiseControl,
Ant

Stelligent社CTO、Paul Duvall氏(source)が、「Automation for the people」(source) シリーズで、継続的インテグレーションサーバにJMeterとAntをどのように統合するか(source) to解説する。統合することで、開発したシステムのある特定の負荷状況における振る舞いを開発者が素早く判断したり、変更に対応したりすることができる。Duvall氏は、まずJMeterのテストで計測できるいくつかのメトリクスを挙げる。:

  • ソフトウェアシステムに何人のユーザが同時にアクセスできますか?
  • 性能が悪化することなくどのくらいのデータをロードすることができますか?
  • システム処理能力の要件は何ですか?
  • これらの要件はどのくらいの間隔でテストされますか?
  • もし、少なくとも一日に一度、これらの負荷と性能の要件が満たされていることを明らかにし、確認することができたとしたらどうでしょうか?

Duvall氏はさらに説明する。CIサーバでスケジュールした自動テストは、一日のうちマシンの使用量が少ないときに実行することができる。同様に、「たった一人で設定してテストを実行するように頼んだ場合に発生しうるボトルネックやエラーを減らす」ことができる。そうした環境をセットアップするために必要な主な手順について説明する。:

1. JMeterを実行し、テスト計画を作成する    JMeter(サイト・英語)はApacheプロジェクトで機能的振る舞いの負荷テストを行い、パフォーマンスを計測するJavaツールである。GUIかコマンドラインから呼び出して、テスト計画によって定義された様々な負荷テストを実行することができる。サンプルのテスト計画には、ウェブテスト計画、FTPテスト計画、ウェブサービステスト計画などが含まれる。このようなテスト計画は、GUIを通して設定し、XML形式で保存することができる。こうしてテストを実行する方法をカスタマイズするために、構成値のパラメタ化が可能となる。

2. AntでJMeterテストを駆動する

実装例(source)を参考にして、JMeter Antタスクを定義する。例えば、次のように定義できる。""  そして、AntからJMeterの負荷テストを実行する。Duvall氏は、BreweryTestPlan.jmx ファイル (テスト計画のXMLの記述) に定義されたテストの設定例を示した 。

<jmeter
  jmeterhome="${jmeter.home}"
  resultlog="${basedir}/target/JMeterResults.xml">
  <testplans includes="BreweryTestPlan.jmx" dir="${basedir}/tests/load">
  </testplans>
</jmeter>

3. XSLTとHTMLでテスト結果のレポートを表示する  次に、JMeterのextrasディレクトリで提供されたXSLTスクリプトを使って、テストの実行結果、「JMeterResults.xml」をHTML形式のレポートにどのように変換するかを示す。生成されたレポートに載っているのは、実行した負荷テストひとつひとつについて、実行時のテスト状況と時間、また全テストの状況と時間の集計結果である。

4. JMeterテストをカスタマイズする  テストを実行する方法はパラメタとプロパティを使ってカスタマイズできる。テスト時や実行時など特定の環境にテストを適合するために、.jmx ファイルにトークンを設定する。後で特定の環境においてテストを実行する場合に、トークンをフィルタリングしたり変更したりできる。Duvall氏は、どのようにJVMメモリを増やし、スレッドとループの数を指定するか例を示した。

5. CI環境でJMeterテストを統合する . Duvall氏は、継続的インテグレーションサーバ、CruiseControlと統合する例を示した。例では、午後11時に毎日実行するビルドをスケジュールする。
...
<modificationset>
  <svn repositorylocation="${svnrepo.location}">
  <timebuild time="2300"/>
...
  </svn>
</modificationset>

CruiseControlのconfig.xml ファイルに2、3行追加すれば、JMeterテスト結果のレポートをCruiseControlのプロジェクトダッシュボードから利用することができる。

継続的パフォーマンスについては、Kirk Pepperdine氏の Iterative, Automated and Continuous Performance(source) 、および、Steve Haines氏の continuous performance management presentation(source)(PPTのダウンロード) で取り上げられている。

原文はこちらです:http://www.infoq.com/news/2008/04/JMeter-Ant-CI

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。

Google Chartとgchartrbの紹介

Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。

SOAを超えて: 動的な業務アプリケーションのための新しいエンタープライズアーキテクチャフレームワーク

全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。

ESB接続形態のオルタナティブ

本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。

AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!-

誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。

SharePoint Webサービスを始めましょう

この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。

レトロスペクティブのプライムディレクティブに対する問い

この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。