「JMeter」BeanShell PostProcessor で HTTP サンプラーのレスポンスボディを取得する

タイトルそのままですが、BeanShell PostProcessor で HTTP サンプラーのレスポンスボディを取得してみました。全然難しい内容ではないですが、毎度ながら備忘録として。

Apache JMeter - User's Manual: Component Reference
- BeanShell PostProcessor
http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PostProcessor


結論から言いますと、HTTP サンプラーの後処理として BeanShell PostProcessor を追加、以下の感じのスクリプトで取れます。

String responseBody = prev.getResponseDataAsString();
vars.put("responseBody", responseBody);


上記のドキュメントに書いてますが、prev 変数は SampleResult オブジェクトになるみたいなので、getResponseDataAsString() メソッドを使って取ってやることができます。vars.put は後続のサンプラーなりで ${responseBody} でこのレスポンスボディを使えるようにするためにやってます ( レスポンスボディ取得するだけであれば特に必要ない )。

・SampleResult (Apache JMeter API)
https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

※ なんとなくキャプチャを・・・

f:id:a4dosanddos:20151216004113p:plain


JMeter は簡単な検証 ( HTTP サンプラー一つだけ定義、あとはぶん回すとか ) でしか使ったことはないですが、いろいろ調べると面白そうですね。独自のサンプラーとか関数とかちょっと作ってみたかったります。

簡単ですが、今日のところは以上です。

[ 環境情報 ]
Windows 7 SP1
Apache JMeter 2.13
Java SE 7 Update 51