前言
在之前的文章JMeter:BeanShell向JSR223迁移过程遭遇的java标准库不可用问题-如何切换JDK版本中引用了一段使用BeanShell对入参进行加密的脚本,迁移到JSR223,虽然更换JDK后编译通过,看似也可以执行了,但是其实那段脚本是有问题的。要解释这个,就要先说一下JSR223在处理groovy语言时,与BeanShell的区别。
使用groovy语言时,JSR223可先对脚本进行编译,而且,推荐缓存编译后的脚本(配置项Script compiled caching - Cache compiled script if available默认选中,且推荐保持选中状态)。这使得它在脚本的执行效率上比BeanShell+Java解释器更加高效,因而官网建议在性能测试中使用JSR223 +Groovy来替代BeanShell+Java。
但是正是由于它的编译功能和缓存编译脚本的特性,使得当在脚本中直接使用JMe