俺です。
解決したい課題
JMeterで ファイル 下載 したい。
背景
ある日JMeterを使ってHTTPリクエストでファイルをGETしたくなり、
HTTP Samplerで試していたところ、HTTP SamplerではJVM HeapにGETしたファイルを溜め込んでしまいます。
実行スレッド数を上昇させるとFull GC地獄に陥ることがわかったので、回避策を考えました。
というか@h-imaoka先生に聞いてなんかねーか教えてもらいました。
解決方法
HTTP Request SamplerではなくBeanShell Samplerを使います。
以下curlを使った一例です。
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="fairu gesai" enabled="true">
<stringProp name="BeanShellSampler.query">exec("/usr/bin/curl -sS -o /dev/null " + vars.get("URL${count}")); </stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
注意点
- JMeterで発行したスレッド数分curlコマンドがバックグラウンドで起動されます。同時スレッド数を高める時はlimitsの修正など忘れないようにしましょう。
- 転送料金に注意しましょう。
よいJMeterライフを!