【接口测试】JMeter强化神器beanshell

2022-08-13 15:54:38 浏览数 (1)

1 什么是beanshell

BeanShell是由Java编写的,是一个轻量级的脚本语言,可以理解用来强化JMeter的一门脚本语言。

我们可以在beanshell自义函数生成随机数,调用jar包获取值等等。

2 如何使用beanshell

在Bean Shell 预处理程序引用jar文件,举例子,现在我们需要进行一个用户借款请求压测,该接口会校验身份证、手机号等信息,那么我们可以通过beanshell引用一个工具类jar包,将获取到的值赋值给我们的请求参数。

使用方式如下:

1、添加Bean Shell 预处理程序

在请求右键 > 添加 > 前置处理器 > Bean Shell 预处理程序

2、在测试计划引入jar包

3、在beanshell中调用jar包

4、将beanshell里面的方法赋值给请求参数

代码语言:javascript复制
#使用方式:将数据存到jmeter变量中
vars.put("key","value"):#举例
{
    "generatedName":${generatedName},
    "idCard":${idCard}
}

5、察看结果树

可以看到我们的请求里带着调用jar包获取的值啦。

6、添加Bean Shell 后置处理程序

在请求右键 > 添加 > 后置处理器 > Bean Shell 后置处理程序

后置处理程序和预处理程序的使用方式差不多,可以用于将解密后的响应进行解密。

7、随机数

我们在测试过程如果需要某个参数随机请求的,也可以通过beanshell来实现。

代码语言:javascript复制
String[] str= new String[]{"张三", "李四", "王五"};
Random random = new Random();
int i = random.nextInt(str.length);
vars.put("str",str[i]);
log.info("随机字符:"   str[i]);

3 总结

beanshell可以用来帮我们处理请求前的参数或者响应,如果遇到复杂的请求或者响应,通过正则表达式提取器或者JSON提取器不好实现的,那么可以考虑通过编写beanshell脚本来解决。

我最开始接触beanshell是因为要测一个借还款请求的接口,因为请求报文和响应报文是加密的,所以我们就需要在请求前将报文进行加密,将响应进行解密,来查看响应是否正确。

后来慢慢发现还可以用造自定义的随机数以及做断言,完全可以根据自己的需求进行定制化处理,所以说掌握一门语言是非常重要的,它可以帮助我们提高效率。

不说了,俺去写Java了......

0 人点赞