JMeter BeanShell 的使用
最大的好处是JMeter支持java语法的BeanShell脚步语言,处理我们自己的业务逻辑。
下面以rest接口信息加密及加密返回举例说明。一般rest接口经常会要求数据加密传输,此时,我们利用JMeter不做特殊处理,很难自动化测试接口,为了对传输数据的透明化加密/解密,我们需要利用JMeter的Pre-Processor Elements和 Post-Processor Elements 及BeanShell脚本 来对请求数据及返回数据加密和解密。
脚本中依赖的类库需要maven打包,并且
利用mvn dependency:copy-dependencies -DoutputDirectory=D:/lib -DincludeScope=compile 把自定义lib的依赖包copy出来,放到JMeter自定义lib路径下:
BeanShell PreProcessor 中需对请求的数据进行加密思路:
Arguments arguments = sampler.getArguments();
Argument arg = arguments.getArgument(0);
arg.setValue("postData");
BeanShell PostProcessor 中需对请求响应内容进行解密处理思路:
String response_data = prev.getResponseDataAsString();
prev.setResponseData("reqDencryptJSON".getBytes("UTF-8"));
代码主要是获取返回内容,加密后重写返回内容。
具体详见demo: