ラベル jMeter の投稿を表示しています。 すべての投稿を表示
ラベル jMeter の投稿を表示しています。 すべての投稿を表示

2013年9月6日金曜日

jMeter 負荷テストわからないよう

jMeterを使って色々やってみたりしてはいるんだけど、未だに正しい使い方がよくわからない。
現時点で「こういうこと?」と思ったことをまとめてみよう。

いろんなサイトを参考にしつつ。資料集めならサイトに飛んだほうがきっと賢い。
A Day In The Boy's Life
 ここの負荷テスト関連がわかりやすい。個人的に他のエントリも面白かった。
TECHSCORE | jMeter
 jMeterの解説が載っている。テストケースの参考もあって大助かり。

webサイトが想定されるアクセス数に対しての負荷に耐えられるか調べる

常に想定数のユーザーがなんらかのリクエストを送っていればいいんだな?
と思って、以下のスレッドグループを作成。
  • スレッド数 : 想定される同時アクセス数
  • Ramp-Up期間 : 1
  • ループ回数 : 無限ループにチェック。
これで単純に実行。無限ループにチェックが入っていると終わらないので、
スケジューラを使ってテスト期間を設定するか手動で終了する。
ただ、これだと本当に一度にリクエスト送られるから初動ですごい負荷かかるんだよね。
Ramp-Up期間を若干広げて少しずつスレッドを送るようにしたほうがいいのかな?

最大でどれだけの負荷に耐えられるか?

ようは上のやつの想定数の値がわからないときの場合...のはず。
どこのページでも何回かテストを繰り返して判断するみたいなことを言っているし。
  • n=テスト回数
  • スレッド数 : 10かけることのn
  • Ramp-up期間 : 1
  • ループ回数 : 無限ループにチェック
  • テスト時間はとりあえず3分
この条件でやってみる。テスト時間は適当に出した値なので当てにしない。
スループットが下がり始めたらそこが限界点!

多分このふたつは考え方は間違っていない、と思う。間違ってないよね。間違ってないといいな。
これをもとにして、色々シナリオ組んだりなんだりすればいいのかなあ?


2013年9月2日月曜日

jMeter Proxyサーバを使用してサンプラーを作成する

jMeterで自分でいちいちサンプラーを設定するのは面倒。
Proxyサーバを使えば自分のアクセスをそのまま使用できるということで、
Proxyサーバがなんなのかもわからないけどやってみよう。

今回は以下のサイトを参考にしました。
・JMeter 2.7つかってみた:プロキシー設定
http://sy5.sakura.ne.jp/jmeter/jmeteproxy.html

/*---------------------------------------------------------------------------*/

まずは「HTTPプロキシサーバ」を追加。
ワークベンチから「追加」→「Non-Testエレメント」→「HTTPプロキシサーバ」

Proxyサーバの設定をする。
なんか色々あるけどよくわからんので、対象となるコントローラから、
今回のスレッドグループを選択だけしておく。

開始! なんか警告が出てきたけど、知ったこっちゃねえぜ!

使用しているブラウザのプロキシ設定を変更。
Chromeを使用しているので設定から詳細設定で変更。
使用しているOSのプロキシ設定が立ち上がるので、
アドレスを localhost に、ポートをjMeterで設定されてるやつにする。

ブラウザでアクセス!

なんか色々できた。
不要なものは右クリックで消してしまう。
やってしまえば意外となんとかなった。

/*---------------------------------------------------------------------------*/

2013年8月29日木曜日

jMeter はじめての負荷テスト

JMeter を使って負荷テストをすることになった。
ぶっちゃけ触ったことすらないのでまずは基本操作を覚える。

参考
・今から3分で jmeter の使い方を身に付ける  (負荷テスト入門)
http://d.hatena.ne.jp/language_and_engineering/20081014/1223905380

/*---- インストール ---------------------------------------------------------*/

公式サイト(http://jmeter.apache.org/)から
apache-jmeter-x.x.zip をダウンロード。x はバージョンです。
解答して任意の場所に移して bin/jmeter.bat を起動しましょう。
なんかそれっぽい画面が立ち上がったら成功です。

/*---- 動かしてみる ---------------------------------------------------------*/

1.左にある「テスト計画」を右クリック。
    「追加」→「スレッドグループ」で適当にパラメータを登録。
    とりあえず参考にしたサイト通りにスレッド数を50。
    Ramp-up期間を10秒にしてみます。
    Ramp-up期間はスレッド立ち上げ期間のことだそうです。
2.できたスレッドグループからさらに
    「追加」→「サンプラー」→「HTTPリクエスト」。
    サーバ名を使用するサーバに、パスをアクセスする場所に。
3.さらにスレッドグループから
    「追加」→「リスナー」→「結果を表で表示」。
4.適当な名前をつけて保存。
5.実行!

できた。表で表示した結果はそのままエクセルにコピーできるみたい。便利。

/*---- 色々機能を使う -------------------------------------------------------*/

・リスナーを色々使ってみる
  テストの結果を表示するにはリスナーを使う。上で使ったもの以外にも色々ある。
  「統計レポート」や、「結果をツリーで表示」は使えるかと。

・GETパラメータの送信
  クエリ。HTTPリクエストの「リクエストで送るパラメータ」というところに
  値を追加すればいけた。

/*---- 外部ファイルから変数を持ってくる -------------------------------------*/

他にも方法があるのかもしれませんが、今回は CSV を使用。

1.CSVファイルを作成する
    行が1スレッドに割り当てられる変数。
    列が各変数の値。
    わかりづらいけど表にするとこんなん

/*---------------------------------------------------------------------------*/
                   | value_1   | value_2     |
    thread_1    | hoge      | hogehoge  |
    thread_2    | fuga       | fugafuga   |
/*---------------------------------------------------------------------------*/

    作成したファイルは bin 直下に置くのがパスも気にしなくていいので楽。

2.HTTPリクエストから「設定エレメント」→「CSV Data Set Config」を追加。
    FileName にパスを通して、
    Variable Names に変数名を設定。今回は name,pass とでもしておきます。
    この設定により jMeter 上ではこうなる。

/*---------------------------------------------------------------------------*/
                   | name      | pass      |
    thread_1    | hoge      | hogehoge  |
    thread_2    | fuga      | fugafuga  |
/*---------------------------------------------------------------------------*/

3.HTTPリクエストの「送信するリクエストパラメータ」に追加。
    jMeter で設定した変数を使う場合は ${name} ${pass} というふうにする。

一通りやってみたことまとめ。
なんとなく jMeter を使った気分!