详解Jmeter中的BeanShell脚本

BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法,所以它和java是可以无缝衔接的,学了Java的一些基本语法后,就可以来在Jmeter中写写BeanShell脚本了

在利用jmeter进行接口测试或者性能测试的时候,我们需要处理一些复杂的请求,此时就需要利用beanshell脚本了,BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法,所以它和java是可以无缝衔接的。beanshell由于内置了一些特有的变量,没法在一些集成代码工具上去调试。

学了Java的一些基本语法后,就可以来在Jmeter中写写BeanShell脚本了。

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

写了个循环,执行后在这里看不到,要在jmeter.bat的windows批处理里看到:

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

1、log:写入信息到jmeter.log文件,使用方法:log.info(“hahahahahahah”);

2、vars:操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

    a) vars.get(String key):从jmeter中获得变量值

    b) vars.put(String key,String value):数据存到jmeter变量中

添加日志查看:

使用vars:

在线程组2里面去访问vars变量,输出null,可见vars确实是个局部变量:

3、props:操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。

props的全局性:

4、prev:获取前面的sample返回的信息,常用方法:

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

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

先发个接口请求,然后prev获取返回信息:

自定义函数:使用Java自定义函数来处理特定的逻辑,结合BeanShell的内置对象进行变量的存取,提高脚本的灵活性。

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

发现报错,原来是函数的返回值是int类型的,而log.info()里面要的是String。这里把int类型的result转换为string有三种方法:
1、String.valueOf(result)

2、Integer.toString(result)

3、result+""

任选一个即可。

引用外部java文件:在BeanShell中通过source("代码路径")方法引入Java文件,然后调用方法和java一样,new一个对象,通过

对象调用里面的方法。

写个静态方法,保存为Test.java文件,放在D盘下:

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

引用外部jar包

首先打包:

1、把当前的Test作为运行文件,先运行一遍。

2、右键项目名--Export--Runnable JAR file.

3、在Launch找到运行文件,放到jmeter安装目录下lib/ext下。

4、在Jmeter的BeanShell里导包,调用方法。

这里我运行报错了,说方法找不到,摸索良久后尝试在测试计划里添加一下jar包,结果成功了。

到此这篇关于Jmeter中的BeanShell脚本的文章就介绍到这了

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

全部资料获取

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JMeterBeanShell脚本语言是一种基于Java语言的脚本语言,它可以在JMeter用于编写自定义的测试逻辑和数据处理逻辑。BeanShell脚本语言具有Java语言的所有特性,包括面向对象编程、变量、运算符、控制结构等,同时还支持动态编译和执行。在JMeterBeanShell脚本语言可以用于编写PreProcessor、PostProcessor、Sampler和Assertion等组件的逻辑代码,以实现更加灵活和定制化的测试方案。 ### 回答2: JMeter是一款功能强大的性能测试工具,其BeanShell脚本语言作为JMeter的一种脚本语言,可以帮助开发人员通过脚本快速实现自己所需要的功能。 BeanShell是一种基于Java语法的脚本语言,可以在JMeter直接使用,无需编译,具有较高的灵活性。它是一种轻量级脚本语言,使用起来简单,语法与Java语言也非常相似。 使用BeanShell脚本语言可以实现JMeter的高级编程功能,通过编写脚本代码,可以对性能测试过程进行自动化,并且可以自定义一些复杂的测试场景。 通过Beanshell脚本语言,你可以在JMeter实现更加复杂的逻辑处理,使用它可以轻松地与Java程序相互通信,更加直观地控制测试过程,使得性能测试过程更加灵活多样化。 BeanShell脚本语言有许多的应用场景,例如当测试过程的需求超出了JMeter本身提供的功能,可以利用BeanShell进行自定义功能的实现,自定义数据生成器或者完成一个复杂的算法等,还可以通过各种方法来对请求参数进行更细致的处理等。 总之,BeanShell脚本语言不仅提供了一种简单的解决方案,而且它还可以将许多常见的测试情况转变为可以重用的代码模块。JMeter使用BeanShell脚本语言确实可以为我们的测试工作带来更高的效率和更多的便利。 ### 回答3: Apache JMeter是一款广泛使用的开源软件,主要用于对Web应用程序进行性能测试。 JMeter可以模拟大量用户同时请求Web服务器,并能够提供对服务器的负载测试。同时,JMeter还具备一些强大的功能,例如多种协议支持,测试结果分析等。而beanshell脚本语言是JMeter的一种特殊功能,它可以使用户自定义执行JMeter任务所需的Java代码的功能。 Beanshell脚本语言是Java语言的一个简化实现。在JMeter,它提供了与Java API的完全兼容性。因此,它可以在JMeter测试计划以与Java相同的方式引用对象和执行Java代码。它还包含了许多自己的语法。 Beanshell脚本语言的主要功能包括: 首先,Beanshell脚本语言可以访问JMeter所使用的Java对象。由于JMeter使用Java编写,因此它能够访问Java API和其他外部库,例如JDBC数据库驱动程序和SOAP / REST客户端等。这使得脚本语言成为JMeter的一个特别重要的功能,因为它可以让用户轻松地扩展测试计划并访问其他系统的数据。 其次,Beanshell脚本语言可以用于自定义高级脚本执行顺序。这允许用户控制脚本的执行方式。脚本语言可以添加到测试计划,以执行特定的操作或操作序列。脚本语言可以在测试计划的多个点触发,这使得脚本语言非常灵活和可配置。 第三,Beanshell脚本语言可以用于在测试运行期间的动态变量和属性设置。该脚本语言可以访问测试使用的变量和属性,以及计算结果。通过Beanshell脚本语言自定义的动态变量设置,可以使用户自定义测试场景,并且可以在多个测试场景之间共享。 第四,Beanshell脚本语言可以用于处理性能测试数据,并且可以基于这些数据更好地优化Web应用程序。通过Beanshell脚本,可以自动捕获和操作JMeter性能测试的数据,从而优化应用程序并提高性能。 总结起来,Beanshell脚本语言是JMeter的一个非常强大的功能。它可以让用户自由扩展测试计划,自定义执行顺序,动态变量和属性设置,并处理性能测试数据等。因此,它是JMeter有效性能测试的关键一环,让测试变得更加灵活和可扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值