JMeter-性能試験
参照文献:https://jmeter.apache.org/usermanual/boss.html
まず、問題
1、ユーザーの推定平均数はどのくらい(通常負荷)ですか?
2、ユーザーのピーク数に期待されてはどのくらいですか?
3、負荷テストは、1つまたは複数のサーバーのクラッシュを引き起こす可能性があることを考慮に入れて、(時間後または週末に)良い時間の我々のアプリケーションの負荷テストは何時ですか?
4、ステートフルなアプリケーションのこと?もしそうなら、どのように管理状態(クッキー、セッション書き換えまたは他の手段で)それを適用すること?
5.達成するためにテストする目的は何ですか?
第二に、資源
1、ネットワーク:私たちのネットワークトポロジを知っていますか?あなたが任意のファイアウォールやプロキシの問題が発生した場合は、助けを求めに向けます。あなたは非常に良いことになり、専用のテストネットワーク(非常に低遅延でネットワークを)持っている場合、あなたは非常に有用であろうどの設定することができます誰が知っています。期待通りにアプリケーションを拡張することができない場合は、誰が追加のハードウェアを追加することができますか?
2、アプリケーション:私たちは、アプリケーションをテストする方法を知っているが実行されていますか?通常のテスト・シーケンスは次のとおりです。
低容量テスト(我々はできる我々のアプリケーションのベンチマークのためにそれ?)
ベンチマーク(ユーザーの平均数)
負荷テスト(ユーザーの最大数)
非破壊検査は、(私たちの制限は難しいです何?)
テストブラックボックスからのものであってもよいですホワイトボックステストの開発(第2の一方は、プログラムの知識を必要とする最初のものは、知識の適用を必要としないことを除いては、[「ブラックボックス」と考えられます])。このプロセスでは、あなたはとても仕事を保護するために準備され、アプリケーションの問題の多くを見つけることができます。
第三に、プラットフォーム
どのプラットフォームのベンチマーク/負荷テストを実行するために使用すべきですか?
プラットフォームは、広く使われているハードウェア、ソフトウェア、およびインストールの基準にする必要があります。覚えておいてください、あなたはテスト結果を公開する場合、まず最初にそれを検証するために顧客を行うには専門スタッフを雇うことです。あなたは、可能な限り、この人の作品を簡素化することができます。
Windowsの場合、Windows XP Professionalのシステムは、の最小要件(他のシステムは、50〜60の同時接続を通すことができない)があります
Linuxでは、BSDとSolarisインテルなどの良い無料のプラットフォーム。あなたがより多くのお金を持っている場合は、商用Linuxを使用することができます。
Windows以外のプラットフォームの場合は、プロセスごとのファイル数を使用「のulimit -n無制限」がオープンに設定されている制限はない、とコマンドは、ユーザーアカウントで起動スクリプト(テストアカウントの.bashrcまたは.cshrcスクリプト)を含んでいます。
また、その一部のLinux / Unixのバージョンのみがサーバーに注意してください。これらは通常、ほとんど、あるいはまったくGUIをサポートしている、このオペレーティングシステムでは、CLIモードでのJMeterを実行することができるはずですが、最小限のインストールのGUI環境場合は、GUIモードでのJMeterを実行することができます。
大規模なベンチマーク/負荷テストでは、プラットフォーム自体が制限要因となります。そのため、最適なハードウェアとソフトウェアの使用を条件。ベンチマークは、ハードウェア/ソフトウェア構成情報に含まれるべきで公開することを忘れないでください。
あなたは、マシンの多くを必要とするか、テストネットワークの遅延にしたい場合は、雲はあなたを助けることができます。JMeterは、クラウドのほぼすべての可能なインフラストラクチャ上で実行することができますので、あなたは簡単にクラウドインスタンスにインストールすることができます。あなたはJMeterのを管理したくない場合は、商用クラウドPAASものJMeterをサポートしています。
JMeterのバッチ(CLI)モードを忘れないでください。いくつかの理由のために、このモードでは、負荷テスト中に使用する必要があります。
あなたは強力なサポートのJavaサーバー機能を持っていますが、高速なグラフィックスを達成できないことがあります。または、リモートでログインする必要がある場合。
そして、リモートディスプレイまたはクライアント使用して-バッチ(CLI)モードに比べ、サーバモードは、ネットワークトラフィックを削減することができます。
時々 、GUIモード用のJava AWTスレッド注入を防止することによって、動作を変更します
ログファイルは、分析のためのバッチのJMeterにワークステーションをロードすることができ、またはCSVは、スプレッドシートにデータを出力し使用することができます。
ない負荷テストのため、GUIモードはスクリプトを作成し、デバッグするために使用され、覚えておいてください
第四に、ツール
ピングこれは、標的部位に到達できるかどうかを決定するために使用することができます。あなたは「ピング」にオプションを指定し、「トレースルート」レポートタイプと同じルートを提供することができます。
nslookupコマンド/ DIGユーザーは通常、人間が読み取り可能なインターネットアドレスを使用しますが、ベンチマーク/負荷テストを実行する際に、DNSルックアップのオーバーヘッドを回避避けたいかもしれないが。このツールは、標的部位の固有のアドレスを決定するために使用することができます。
トレースルートあなたは「ピング」先のサイトことができない場合は、(おそらくファイアウォールまたはプロキシ)問題を識別するためにそれを使用することができます。( - ユーザーがおそらく忙しいインターネット上で実行されることに注意してくださいローカルネットワークの実行遅延で提供されなければならない可能な限り低いとして)また、全体的なネットワークレイテンシを推定するために使用することができます。典型的には、可能な限りホップ数。
第五に、JMeterのを高めるためにどのように?
使用JMeterのための多くのオープンソースと商用プロバイダーのJMeterプラグインや他のリソースがあります。これらのいくつかはJMeterのWikiの中に記載されています。彼らは、次のカテゴリに分類されます。
JMeterPlugins -拡張JMeterのプラグイン
JMeterAddons -プラグインのJMeter、ブラウザ、Mavenとジェンキンスプラグインで使用するため。
JMeterServices -サードパーティのサービスは、そのようなクラウドベースのJMeterなど
これらは、ウィキのApache JMeterの上に現れることに注意してくださいは、任意のプロジェクトが承認されたことを意味するものではありませんしてください。任意のサポート要求は、直接業者にお問い合わせください。
VI。なぜJavaのでしょうか?
なぜ、むしろ、PerlやCよりも?Perlは良い選択をすることができ、Javaのですが、唯一の他のベンチマークパッケージに加えて、かなり曖昧な結果を与えているようです。そして、Perlのシミュレート複数のユーザーとは、(シェルスクリプト由来の多くのプロセスを経て複数の接続をシミュレートすることができますが、これらはスレッドされていないが、プロセス)難しい問題です。Perlコミュニティ大
誰かが何か有用なものを書いたことを、あなた判明した場合、これは良い解決策かもしれません。もちろん、Cは(ApacheのABツールを参照してください)にも適しています。しかし、すべての必要なベンチマークのカスタムネットワークアプリケーション、スレッドと状態管理コードを書き込みます。
Javaが必要なベンチマークアプリケーションのカスタムネットワーク無料、スレッドと状態管理コードを提供します。JavaはHTTP、FTPおよびHTTPS-を知っているし、RMI、IIOPおよびJDBCは(クッキーは、URLをエンコードしてURLを書き換え言うまでもありません)。また、Javaのセキュリティ自動ガベージコレクションとバイトコードのレベルを提供します。