Jmeter >用beanshell处理数据中的加解密

Jmeter >用beanshell处理数据中的加解密

  • 添加用户定义的变量>添加参数

Jmeter >用beanshell处理数据中的加解密

initoffer : {"token":"**{token}**","userIdType":"GAID","user_id":"userid123","osv":"7.0","sdk_san_version":"1.0.0beta","h":"1280","w":"720","os":"Android","platform":"Android","app_version":"1.1","country":"CN","make":"samsung","time_zone":"GMT+08:00","pkg_name":"**{app}**","sdk_init":"24","language":"zh","aid":"7fb2bb26-9db1-48c5-9cbe-eca648dcc0f5","gaid":"09f18ff8-50c7-45dc-857d-8ed65a3b71b1","model":"SM-J727T1","offerid_limit":[],"offerid_cache":[],"offerid_resource_error":[]} 

注意{**}的内容是需要进行参数化的数据

  • 添加csv data setconfig
    如果脚本需要移植的话,文件地址需要使用相对地址
    Jmeter >用beanshell处理数据中的加解密
  • 数据文件,用,隔开,第一个内容是app的取值,第二个内容是token的取值,第三个内容是pid的取值
    Jmeter >用beanshell处理数据中的加解密
  • http请求initoffer添加beanshell preprocessor
    Jmeter >用beanshell处理数据中的加解密
import com.jmeter.java.test.*;
String initoffer = vars.get("initoffer");
initoffer = initoffer.replace("{token}","${token}");  
initoffer = initoffer.replace("{app}","${app}");
//System.out.println("initoffer = " + initoffer);
String text = SDKcode.jiaMI(initoffer);
vars.put("init",text);
  • initoffer >请求体 使用加密之后的内容 ${init}
    Jmeter >用beanshell处理数据中的加解密
  • initoffer > 添加 beanshell 断言,来检验返回内容是否正确

Jmeter >用beanshell处理数据中的加解密

  • benshell 断言内容
import com.jmeter.java.test.*;
response = prev.getResponseDataAsString(); 
//System.out.println("响应内容: \n" + response);
response = SDKcode.jieMI(response);
//System.out.println("响应内容: \n" + response);
String assertvalue =  vars.get("assertvalue");
//System.out.println("比对内容: \n" + assertvalue);
if(response.contains(assertvalue)){
	//System.out.println("包含" );
}else{
	Failure = false;
	FailureMessage = "失败!";
}