Web アプリの負荷試験ツールの定番 Apache Jmeter を少しだけ触る機会があったのでメモです。
![How to Set a Variable within a Variable in Apache JMeter](https://designhack.slashlab.net/images/eyecatch_40-720x405.jpg)
設定エレメント(Config Element)のユーザー定義変数(User Defined Variables)にユーザー定義変数を使う方法です。また、設定エレメントのカウント(Counter)をユーザー定義変数に使う方法もメモしておきます。他にも応用できるかも。
尚、使用した Jmeter は 2015年 6月 1日現在の最新版、Apache JMeter 2.13 です。
ユーザー定義変数の値に変数を使う
やりたいことは単純です。
![ScreenShot](/images/ss_jmeter_01.gif)
名前 | 値 |
---|---|
aaa | alpha |
bbb | beta |
ccc | ${aaa}@${bbb}.example.com |
上記 ccc のように、ユーザー定義変数の値に変数を使いたい。でも この設定方法では うまくいきません。
![ScreenShot](/images/ss_jmeter_02.gif)
ccc=${aaa}@${bbb}.example.com
この通り。Debug Sampler で確認すると、ccc 内の変数が展開されていません。この解決策は簡単で、ccc の定義を、使用する変数とは別のユーザー定義変数エレメントで設定すれば OK です。
修正後
![ScreenShot](/images/ss_jmeter_03.gif)
![ScreenShot](/images/ss_jmeter_04.gif)
ccc=alpha@beta.example.com
ユーザー定義変数の値にカウンタ エレメントの変数を使う
次のように定義したカウンタ エレメントの参照名 counter 変数をユーザー定義変数の値に使いたい場合です。
![ScreenShot](/images/ss_jmeter_05.gif)
![ScreenShot](/images/ss_jmeter_06.gif)
名前 | 値 |
---|---|
ddd | ${aaa}${counter}@${bbb}.example.com |
上記 ddd ですが、記事にするからには この設定方法では うまくいきません。
![ScreenShot](/images/ss_jmeter_07.gif)
ddd=alpha${counter}@beta.example.com
このように残念な結果。counter 変数が展開されていません。この解決には、BeanShell サンプラーで変数を定義します。
BeanShell サンプラーで変数を定義する方法
vars.put("eee", "${aaa}${counter}@${bbb}.example.com");
![ScreenShot](/images/ss_jmeter_08.gif)
結果
![ScreenShot](/images/ss_jmeter_09.gif)
eee=alpha001@beta.example.com
(おまけ)最近の Jmeter 事情と筆者のハマりポイント
- zip の解凍に Lhaplus を使うと気付きにくいが実は失敗している
(Windows 7 標準の zip 展開なら大丈夫) - 起動は bin 配下の jmeter.bat を実行するだけ(Java を事前にインストールしておく必要あり)
- https は追加コンポーネント無しでアクセス可能
どなたかのお役に立つことを願いつつ 以上です。
Hey, that’s a clever way of thnniikg about it.
; Guez a été victorieuse, défaisant Leonardo Morales dans les finales.