JMeterで負荷をかけてみる

てもとの Webアプリさん、どんくらいまで耐えれるのかなっていうのを試してみたくなりました。

JMeter で簡単に負荷をかけれるようなのでやってみた記録です。

 

■処理概要

 

Web アプリというのは、カレンダへの予定登録アプリみたいなものだと思ってください。

・ログインする

・ユーザごとのメニューページを出す

・今月1日~28日の予定をバーッと埋める

・ログアウトする

という流れを複数ユーザ分流す、という処理をさせます。というのを試してみました。

画面的にはこのような感じです。左側のツリー状に並んでるところが処理の流れ。

 

■ユーザごとのログイン

 

「ユーザパラメータ」のところでログインに使用するユーザ名を並べます。

これはログインページの POST に埋め込みます。値は ${userid} で取れます。

ユーザー_1 ~ ユーザー_5 は、スレッド数に対応付けられます。

実行に定義したスレッド数が3だと、ユーザー_1 ~ ユーザー_3 が使用されます。

用意したユーザ数よりスレッド数を多く実行したら?しらんがな。試してください。

 

■繰り返し+カウンタ

 

1日から28日まで埋めるという処理について、28個分の処理を並べるのは美しくないのでループで実現します。

While Controller にループの条件を記述。普通に単純な式を書いても無視されるので(なぜ?)Javascriptの書式で書きます。

${__javaScript(${count} < 28,dummy)} こんな感じ。ここで使ってる ${count} はあとで定義します。

カウンタで定義してあるのがこれ。ここで一日ずつ増やしていきます。

定義したカウンタの値はそのまま POST の内容に埋め込めます。埋めたい場所に ${count} と、べたっと書けば値を使えます。

これで実行すれば、ログインからデータ投入からログアウトまでの一連の処理を自動的にやってくれます。

複数スレッドで繰り返しまくり処理させて負荷耐性をチェックしたりできます。