Jmeter:为什么在Jmeter用Groovy写JSR223脚本
问题
- 什么是JSR223脚本?
- 为什么用Groovy来写JSR223脚本?
- 在Jmeter中写JSR223脚本容易出错(缺少代码提示),怎么办?
什么是JSR223脚本?
JSR223脚本可以用于像 sample 一样执行,还能进行创建、更新变量等计算逻辑,包含:JSR223 Sampler,JSR223 预处理程序,JSR223 后置处理程序,JSR223断言……
JSR223脚本有一个显著提升性能的特性:编译,这个特性取决于(2选1):
- 使用 Script files 编写脚本,当 ScriptEngine 启用了该特性后,Jmeter 会编译并缓存脚本文件
- 或者勾选『Cache compiled script if available』,注意:当勾选该特性后,需要注意以下两个事项:
- 脚本中不要使用J meter 变量或 Jmeter 函数(如:${user}, ${__MD5(test,)}),如果使用了,则会在第一次调用后缓存结果值,在下一次调用则会直接使用缓存的值;
- 用于编写脚本的语言引擎必须实现 JSR223 可编译接口(Groovy 是其中之一,java、beanshell 和 javascript 不是)
为什么用 Groovy 来写 JSR223 脚本?
以下列出我认为用 Groovy 的理由:
- 如上面所述,Groovy 的语言引擎实现了 JSR223 可编译接口,开启『编译』特性后能提升性能
- 语法相对于『Java、Beanshell』,更为简洁,且不容易出错
- Groovy 可直接调用『Java库』,功能全面
以下列出不用其他语言的理由:
- 使用 Java、Beanshell 无法使用泛型,写出的代码不符合平时的代码习惯
- Jmeter使用中,性能上不如 Groovy
- JavaScript仅支持 ES5 语法
在Jmeter中写JSR223脚本容易出错(缺少代码提示),怎么办?
见我的另一篇文章:在Idea中编写Jmeter JSR223脚本(Groovy)