JMeter BeanShell 的使用-请求加密-返回自动解密处理

JMeter  BeanShell 的使用

一般rest接口,项目中经常使用类似JMeter( SoapUI 界面看起来没JMete清爽) 来自动测试接口。
最大的好处是JMeter支持java语法的BeanShell脚步语言,处理我们自己的业务逻辑。
下面以rest接口信息加密及加密返回举例说明。一般rest接口经常会要求数据加密传输,此时,我们利用JMeter不做特殊处理,很难自动化测试接口,为了对传输数据的透明化加密/解密,我们需要利用JMeterPre-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");

代码主要是从当期sampler中获取请求参数,对参数进行加密后重写请求参数。

BeanShell PostProcessor 中需对请求响应内容进行解密处理思路
 String response_data = prev.getResponseDataAsString();
 prev.setResponseData("reqDencryptJSON".getBytes("UTF-8"));
   
 代码主要是获取返回内容,加密后重写返回内容。

具体详见demo:


 代码demo见:https://github.com/sdcuike/JMeter-jmx-BeanShellCode

你可能感兴趣的:(JMeter BeanShell 的使用-请求加密-返回自动解密处理)