BeanShell 的使用

阅读更多

在jmeter中可以使用beanshell语言,来对请求报文或者结果进行一些处理,入下面是需要对。

import com.cnn.electronic.invoice.util.SecurityUtil;
import com.cnn.base.common.lang.DESedeEncrypt;
String requestBody = "{'tradeNo':'T-40ec63a8d1d74a1cbe1f776e64559ee1','buyerBankAccount':'','buyerEMail':'[email protected]','remark':'remark','buyerName':'张三','deductions':'deductions','currentTime':'"+ System.currentTimeMillis() +"','totalAmount':'0.1','businessNo':'510404','buyerPhone':'15810165793','buyerAddAndPhone':'','buyerIdentificationNo':'','detailList':'','businessMerchantNo':'890000000012312','busOrderNum':'"+UUID.randomUUID().toString()+"'}";
String encBody = requestBody;
encBody = SecurityUtil.encrypt("ZWQ1N2M2ZTctNDdkMi00Nzk0LWE5ZmQtODM1ZDVmZjMwYTFh",requestBody);
vars.put("encBody",encBody);

然后可以在 html请求中,把 ${encBody} 写到 postBody中,即可以每次自动生成需要的报文,并加密处理。

另外对后置处理关键点:

prev.getResponseDataAsString();   用于获取http响应报文。

prev.setResponseData(x);   用于篡改响应报文.

 

另外,关于导入jar。 我测试时发现导入jar 到“测试计划”面板的最下面,但是发现无效(报告找不到类),后来又将相应的jar 放到 jmeter 的lib/ext 下。依然无效。然后保存重启jmeter之后,生效了。

另外,如果需要捕获异常打印日志,不能catch Exception ,必须catch Throwable  才有效。(这点可能是对于找不到类的情况)

由于时间关系,不进行细细测试反推。

 

 

 

 

你可能感兴趣的:(jmeter)