「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
※ なんとなくキャプチャを・・・
JMeter は簡単な検証 ( HTTP サンプラー一つだけ定義、あとはぶん回すとか ) でしか使ったことはないですが、いろいろ調べると面白そうですね。独自のサンプラーとか関数とかちょっと作ってみたかったります。
簡単ですが、今日のところは以上です。
[ 環境情報 ]
Windows 7 SP1
Apache JMeter 2.13
Java SE 7 Update 51