,,详解Jmeter中的BeanShell脚本

,,详解Jmeter中的BeanShell脚本

BeanShell是一种完全符合java语法的脚本语言,有自己的语法和方法,所以可以和Java无缝对接。学习了一些基本的Java语法之后,就可以用Jmeter编写BeanShell脚本了。

在使用jmeter进行接口测试或者性能测试时,需要处理一些复杂的请求,所以需要使用beanshell脚本。BeanShell是一种完全符合java语法的脚本语言,有自己的语法和方法,所以可以和Java无缝连接。Beanshell由于内置了特殊变量,在一些集成代码工具中无法调试。

学习了Java的一些基本语法之后,就可以用Jmeter编写BeanShell脚本了。

直接在线程组下创建一个BeanShell sampler,然后在脚本区写java代码:

我写了一个循环,但是执行后在这里看不到。想在jmeter.bat的windows批次中看到:

JMeter在其BeanShell中有内置变量,用户可以通过这些变量与JMeter进行交互:

1.log:将信息写入jmeter.log文件,使用方法:log.info("哈哈哈哈哈哈");

2.var:操作jmeter变量。这个变量实际上指的是JMeter thread中的局部变量容器(本质上是Map),是测试用例与BeanShell之间的桥梁。常用方法:

A) vars.get(String key):从jmeter获取变量值。

B) vars.put(String key,String value):数据存储在jmeter变量中。

添加日志视图:

使用变量:

转到线程组2中的vars变量,输出null,这表明vars确实是一个局部变量:

3.道具:操作jmeter属性。该变量引用JMeter的配置信息,可以获取Jmeter的属性。它的用法类似于vars,但是它只能放入一个字符串值,而不能放入一个对象。对应于java.util.Properties

道具的全球性:

4.prev:获取前一个样本返回的信息。常用方法:

A)getResponseDataAsString():获取响应信息;

B) getResponseCode():获取响应代码;

先做一个接口请求,然后prev得到返回信息:

自定义函数:Java自定义函数用于处理特定的逻辑,结合BeanShell的内置对象访问变量,提高脚本的灵活性。

写一个自定义静态函数实现整数的累加:

发现一个错误,原来函数的返回值是int类型,而log.info()需要一个字符串。这里,有三种方法可以将int类型的结果转换为string:

1、String.valueOf(结果)

2、Integer.toString(结果)

3、结果''

随便选一个。

对外部java文件的引用:通过source ('code path ')方法在BeanShell中引入java文件,然后调用方法。就像Java一样,通过

调用对象内部的方法。

编写一个静态方法,将其保存为Test.java文件,并将其放在驱动器D:

然后引用BeanShell中的Test.java,调用函数,传递参数100,日志输出:

引用外部jar包

先打包:

1.将当前测试作为运行文件,先运行一次。

2.右键单击项目名称- Export - Runnable JAR文件。

3.在Launch中找到运行文件,并把它放在jmeter安装目录的lib/ext下。

4.在Jmeter的BeanShell中引导包,调用方法。

我在这里运行了一个错误,说找不到方法。经过长时间的摸索,我尝试在测试计划中加入jar包,结果成功了。

关于Jmeter中的BeanShell脚本的这篇文章到此为止。有关Jmeter BeanShell脚本的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: