系统相关
首页 > 系统相关> > Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!

Beanshell vs JSR223 vs Java JMeter脚本:性能关闭你一直在等待!

作者:互联网

有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能。查看最流行的扩展机制,比较性能并分析哪一个是最好的。 

 

这是乐队之战,JMeter风格。

 

Beanshell V. JSR223 V. Java Request Sampler

 

在我们之前的帖子中,   JMeter Performance和Tuning Tips  ( 由fantastik Philipe Mouwad编写) 我们建议使用JSR 223 + Groovy进行脚本编写。这是最好的选择,因为Groovy脚本可以编译成本机Java代码(假设满足一些要求),因此Groovy脚本执行性能几乎与Java代码一样快。 
 

因此,如果你准备使用一次脚本,快速脏(例如在测试开始时阅读配置文件),欢迎使用Beanshell / Javascript /无论你喜欢什么。

 

但是,如果您要通过脚本进行一些广泛的负载测试(即从计算数据构建大量HTTP请求),则需要考虑Groovy或自定义Java请求或JMeter Sampler。

 

为了进行比较,我们将使用相同的简单代码生成1Mb随机字母数字字符串。 

  增加图像import java.security.SecureRandom;  BlazeMeter博客  

比较指标将使用10个用户x 100次迭代收集,会话持续时间为1小时(标准BlazeMeter会话长度),负载生成将通过执行上述代码从单个JMeter控制台完成,并演示以下引擎的关键性能指标:

 

 

在负载生成器端包含相关的CPU / RAM成本(BlazeMeter控制台)

 

测试将使用以下环境:

 

 

Beanshell采样器

 

组态

 

对于Beanshell,不需要先决条件,一切都可以开箱即用。我们所需要做的就是添加一个Beanshell Sampler并粘贴1Mb随机字符串生成代码。将测试脚本上传到BlazeMeter的测试仪表板并设置适当的线程,迭代和持续时间后,我们得到以下结果:

 

加载测试结果

 

增加图像BlazeMeter的负载测试结果

 

JSR233采样器

 

组态

 

如上所述,对于脚本,建议使用JSR233 + Groovy。JMeter不附带Groovy,需要单独下载。开始:

 

  1. Groovy网站下载区下载最新的groovy二进制包

  2. 在“embeddable”分发文件夹下找到groovy-all - $ {VERSION} .jar并将其放到JMeter / lib文件夹中。或者将其上传到“文件”区域中的BlazeMeter,BlazeMeter会将其放入相应的位置

  3. 将JSR233 Sampler添加到Thread Group,将“groovy”指定为Language

  4. 将编译缓存键设置为唯一的 

  5. 将1Mb随机字符串生成代码粘贴到脚本区域

 

重要提示: 

 

•  使用.groovy文件而不是将Groovy代码保留在采样器中。但是,如果需要在采样器中直接使用代码,请确保已设置编译缓存密钥。如果您有> 1 JSR233 Sampler - 请确保它们使用不同的密钥

•  不要在Groovy脚本中将任何变量引用为$ {VAR}。使用vars.get(“VAR”)或JSR233 Sampler的Parameters节

 

加载测试结果

 

增加图像使用JSR233 Sampler加载测试结果

 

Java请求

 

组态

 

Java Request是您自己的JavaSamplerClient实现,所有描述的方法都应该有适当的代码。绝对最小值是runTest()方法的覆盖,但如果您打算参数化Java Request,则需要提供适当的逻辑来读取输入和请求流的条件解释,以确定Sampler是否通过。 

 

通过Java Request生成1Mb随机字符串的示例代码如下所示:

  增加图像Java Request是您自己的JavaSamplerClient实现,

 

编译类需要放在JMeter安装的/ lib / ext文件夹中,最好是.jar形式,这样JMeter可以自动拾取它,否则你需要修改JMeter类路径。 

 

使用BlazeMeter时,只需将.jar文件与您的脚本和其他扩展程序(如果有的话)一起上传,BlazeMeter引擎就会将其取出。 

 

 

2013/12/05 11:09:38 INFO - BlazeMeter:BlazeMeter启动脚本完成

2013/12/05 11:09:39 INFO - jmeter.protocol.java.sampler.JavaSampler:创建的类:com.blazemeter.JavaRequest

 

 

加载测试结果

 

增加图像BlazeMeter上的Java请求加载报告结果

 

结论

 

增加图像比较Beanshell v JSR233 v Java

 

建议将Beanshell用于一次性活动,例如在单线程setUp线程组中的某处读取配置文件,或者在不存在使用替代方法的情况下。 

 

JSR233 / Groovy是脚本编写的合理选择,但只有“编译”功能。

 

获胜者是......... Java Request,提供卓越的性能和前沿的生产力!

 

标签:Groovy,脚本,Java,JSR223,BlazeMeter,vs,Beanshell,JMeter
来源: https://www.cnblogs.com/a00ium/p/10354809.html