JSR223 Samplerは、Groovyのは、他のスクリプト言語とは異なるCompilable interface
を実施しているため、 スクリプト必見のために使用される言語エンジン、キャッシュとコンパイルを利用するにJMeterのスクリプトエンジンのキャッシングとコンパイル
を推奨していることを声明を持っている可能にします(Groovyのは これらはJava、BeanShellのの一つであるとJavaScriptではない)JSR223コンパイル可能なインタフェースを実装し
私はJSR223でsimilar codeを使用して、それをチェックしてみましたサンプラー。 私はコンパイル可能で、利用可能なすべての言語をチェックしてみました:
import javax.script.Compilable;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
ScriptEngineManager mgr = new ScriptEngineManager();
engineFactories = mgr.getEngineFactories();
for (ScriptEngineFactory engineFactory : engineFactories) {
if (engineFactory instanceof Compilable) {
log.info(engineFactory.getEngineName() + " Script compilation is supported.");
} else {
log.info(engineFactory.getEngineName() + " Script compilation is not supported.");
}
}
私の結果は次のとおりです。
なしサポートのコンパイルを意味Oracle Nashorn Script compilation is not supported.
JEXL Engine Script compilation is not supported.
Groovy Scripting Engine Script compilation is not supported.
JEXL Engine Script compilation is not supported.
Velocity Script compilation is not supported.
BeanShell Engine Script compilation is not supported.
、
EDIT 1 は私がに応じて変化します@ aristotllの小切手を今すぐ返すすべてをサポートしています
final ScriptEngine engine = engineFactory.getScriptEngine();
if (engine instanceof Compilable) {
私は興味深い結果を得ている@aristotll第二編集に応じ
try {
((Compilable) engine).compile("");
log.info(engineFactory.getEngineName() + " Script compilation is supported.");
} catch (Error e) {
log.info(engineFactory.getEngineName() + " Script compilation is not supported.");
を変更EDIT 2
:NashornとJEXLは
Groovy Scripting Engine Script compilation is supported.
Oracle Nashorn Script compilation is supported.
JEXL Engine Script compilation is supported.
BeanShell Engine Script compilation is not supported.
JEXL Engine Script compilation is supported.
アムそれをサポート私は何か間違っていることをチェックしているそれを可能にするためにもっと多くのjarをインポートする必要がありますか? スクリプトエンジンがキャッシュとコンパイルを使用するかどうかはどのように知ることができますか? JMeterのステートメントが間違っている/古いですか?
ありがとうございます。しかし今、私はすべてのスクリプトエンジンのサポートコンパイルを得ます – user7294900
@ user7294900私は私の答えを更新します。 – aristotll
Groovy Scripting Engineスクリプトのコンパイルがサポートされています。 Oracle Nashorn Scriptのコンパイルがサポートされています。 JEXLエンジンスクリプトのコンパイルがサポートされています。 BeanShell Engineスクリプトのコンパイルはサポートされていません。 JEXLエンジンスクリプトのコンパイルがサポートされています。 – user7294900