Jmeter之BeanShell的使用

背景:在一次接口压测过程中,接口的参数值是通过java类中的方法获取的,此方法没有封装成接口,又因参数值存在有效期(15min),所以导致在执行压测的过程中需考虑在执行的时长内参数值是否失效的问题。

在未使用beanshell的时候(当时不知道如何使用,且时间紧,没时间研究),就先在IntelliJ Idea运行Java程序获取参数值,然后将参数值复制出来粘贴到jmeter中,然后再执行脚本进行压测。暂时不影响测试,但是操作起来有点麻烦。

趁着测试工作结束,正好有时间研究下jmeter中beanshell的使用,总结如下:

1、先将java程序打成jar包;

打jar包参考:https://www.cnblogs.com/xianz666/p/14101811.html

2、将1中jar包复制到jmeter安装路径D:\Program Files\apache-jmeter-5.3\lib\ext\下,如果jave程序中有引用到其它jar包(import导入的),也一并复制到该目录下;

3、启动jmeter,在测试计划右侧页面下方,添加2中复制的jar包:

添加jar包

4、然后在测试计划下,创建线程组,添加BeanShell取样器,在取样器右侧页面脚本处,编写java脚本:

编写脚本

注:脚本可接收传参,参数传入方式:${参数名1} ${参数名2} ...,参数之间用空格隔开,在脚本中可使用bsh.args[i]获取参数值,i表示参数在数组中的索引。参数的定义,放在用户定义的变量中,在线程组下添加用户定义的变量:

定义脚本变量

5、在线程组下添加HTTP请求,在消息体数据中传递请求参数(json):

接收(使用)脚本变量

6、在线程组下添加查看结果数,执行HTTP请求,查看结果树中请求body中的参数(成功获取):

参数接收变量

至此,使用BeanShell的方式成功传参,解决了手动获取参数的麻烦。

你可能感兴趣的:(Jmeter之BeanShell的使用)