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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。