jmeter beanShell 修改http请求参数

在使用jmeter进行测试时,需要对上一步响应的明文参数,如userName='tom' token='%sdf%sdkdfj'之类的参数,加密一下,才能进行下一步http请求,
涉及三个问题
1、加密要引入自定义的加密函数
2、要可以拿到第一次http的响应
3、第二次http请求前,要动态构建参数

1、 引入加密函数和fastjson


2、在beanShell里拿上一次请求的响应
在第一个请求里 添加,后置处理器
建一个BeanShell Post Processor
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.JSONObject;

//拿到响应值
  String json = prev.getResponseDataAsString();  
    log.info("json="+json);  

 JSONObject obj = JSON.parseObject(json);

	String dlapp = obj.getString("dlapp");
     log.info("dlapp="+dlapp);  
     
     String ret = obj.getString("ret");
     log.info("ret="+ret);

       
     String capFlag = obj.getString("capFlag");
     log.info("capFlag="+capFlag);

    
    //解析后放到变量里  
    vars.put("dlapp",dlapp);
    vars.put("capFlag",capFlag);  
    vars.put("ret",ret);  



3、第二次http请求前,要动态构建参数

第二次http请求时,请求的参数值使用jmeter变量

sign=${sign}

添加,前置处理器
建一个BeanShell PreProcessor
调用加密函数进行加密后,放入变量里
    String capFlag = vars.get("capFlag");  
    String dlapp= vars.get("dlapp");  
    String ret= vars.get("ret");  

    log.info("dlapp="+dlapp);  
    log.info("capFlag="+capFlag);
    log.info("ret="+ret);  

   	vars.put("dlapp",dlapp);
    vars.put("capFlag",capFlag);  
    vars.put("ret",ret);   


查看jmeter log日志




猜你喜欢

转载自powertech.iteye.com/blog/2174521