// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 #contents [[JMeter - Apache JMeter>http://jakarta.apache.org/jmeter/]]はWEB向けのPure Javaなストレスツールです。 **ダウンロード [#yc0a4fcb] [[The Jakarta Site - JMeter Downloads>http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi]]よりダウンロード可能です。インストールも解凍するだけですね。 **やってみる [#sab3fc53] 実際にやってみます。 シナリオとしては -http://localhost:8080/stressTest/index.do でログイン画面表示 -http://localhost:8080/stressTest/login.do でログインアクション->ログイン中画面 -http://localhost:8080/stressTest/logout.doでログアウトアクション->ログアウトしました画面->元のログイン画面 -ログアウトアクションでは、トークンチェックしている なんてモノをやってみようと思います。ログインアクションはパラメタとしてuserid,password を取ります。んで、それぞれ userid=hoge password=fuga だったらOKとロジックがくんであります。またトークンチェックとはいわゆる[[Strutsの同期トークンの機能>]]で、ログアウトのリンクの後ろに /stressTest/logout.do?org.apache.struts.taglib.html.TOKEN =166176d36f24bb9a0c77df7f368d2fd4 というリクエストするごとに異なる値が載っているうモノです。このパラメタは毎回異なるので注意が必要です。 &color(red){絶対に他者のサイトにストレスをかけないでください。他者のサイトにストレスをかけた場合、最悪の場合損害賠償を請求されるかもしれないので、十分ご注意ください。}; ***全体の設定 [#g43446a6] テスト計画で右クリックして 追加 > スレッドグループ で追加します。 #ref(01.png) 下記のスレッドグループ設定では、 -スレッド数 -何秒かけて起動するか((10秒と設定したら、上のスレッドを10秒かけて起動する)) -ループ回数(上の設定を何回ループするか) などを設定します。たとえば -スレッド数 5 -Ramp-Up期間 10秒 -ループ回数 1 とした場合、10秒で5スレッドを起動するので、2秒に1回(初回の)クエリが発行されることになります。 #ref(02threadGroup.png) ***接続先の指定 [#n9577943] 次に接続先のサーバを指定します。テスト計画で右クリックして 追加 > 設定エレメント > HTTPリクエスト初期値設定 で追加します。 #ref(03Init.png) ここでは接続先のサーバ名やプロトコルなどを一括で指定することができます。すべてのクエリに載せたいパラメタなんかもかけそうです。 #ref(04Init.png) ***各クエリの追加 [#b755f7fc] 次に各画面ごとのクエリを追加していきます。クエリは スレッドグループを右クリックして 追加 > サンプラー > HTTPリクエスト で追加します。 #ref(05sampler.png) サンプラーの画面では -パス(URLのコンテキスト以下) -GETかPOSTか -クエリのパラメタ などを指定します。たとえば下の例だとリクエストパスを /stressTest/index.do と指定しています。メソッドはGetです。 #ref(06sampler.png) 次にログイン処理を行います。スレッドグループの下にログインアクションを追加しました。このログインアクションはクエリとして userid,password を取るので「リクエストで送るパラメータ」の欄にパラメタとして追加してあります。パラメタの値は本来可変である必要がありますが、サンプルは固定で問題ないのでとりあえず固定で値hoge,fugaを設定しています。 #ref(07parameter.png) **ストレステストの結果を表示する [#xfa05f81] **リクエストにCookieを載せる [#j5744936] **ユーザ定義の変数をつかう [#e4f59b7b] **トークンなど、前画面の値をリクエストにセットする [#gc45366b] **戻り電文の任意の値を次のリクエストにセットする [#lf5719c5] 次はもっと汎用的に、 **ID/PASSなど、可変な値をリストファイルからセットする [#q3b56c65] **戻り電文をアサーションする [#e429ae02] **オペレーションを自動記録する [#xb011c59] 今まで手動でサンプラー(リクエスト)を作ってきましたが、実はJMeterをプロキシサーバにして、リクエスト・レスポンスを自動的にキャプチャすることができます。これをすれば上り電文のパラメタとかいちいち設定する必要がなくて、とても便利そうです。 ***プロキシサーバの追加 [#f41070a6] ワークベンチ >> HTTP プロキシサーバ **XML-RPCのようなkey=value形式でないクエリを送信する [#lbb9d23b] **関連リンク [#u0c0b76c] -[[JMeter - Apache JMeter>http://jakarta.apache.org/jmeter/]] -[[JMeter(高機能/フリーなテストツール)第1回:JMeterの基本>http://www.stackasterisk.jp/tech/engineer/jmeter01_01.jsp]] -[[JMeter(高機能/フリーなテストツール)第01回:JMeterの基本>http://www.stackasterisk.jp/tech/engineer/jmeter01_03.jsp]] -[[JMeter-TECHSCORE->http://www.techscore.com/tech/ApacheJakarta/JMeter/index.html]] -[[[jmeter] - marsのメモ>http://d.hatena.ne.jp/masanobuimai/searchdiary?word=*%5Bjmeter%5D]] -[[テスト・スクリプト改善のヒント - ITアーキテクト [IT Architect]>http://www.itarchitect.jp/methodology_and_design/-/39302-1.html]] -[[Apache-JMeter.pdf (application/pdf オブジェクト)>http://www.jp.compaq.com/products/software/oe/linux/summary/reference/pdfs/Apache-JMeter.pdf]] ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}