这里可以采用 Beanshell断言
1、首先得让开发写一个解密的jar包,然后把jar包放入到 JMeter的 JMeter的lib/ext目录下
2、然后在测试计划中有一个 add Directory or jar to classpath在这里指定jar的路径添加需要的jar包
3、在 JMeter中添加 Beanshell断言,里面实现java代码,具体过程就是
a.导入解密的jar包中的解密算法类
b.导入用于解释json格式数据的类(假设返回的数据是json格式的)
c.对数据进行处理器,首先获取接口的返回数据,然后调用解密算法类中的函数进行解密,解密出来后就是一个json格式数据
d.然后调用json库中的函数对json数据进行解释,提取其中需要断言的字段,判断与预期结果是否一致就可以了
具体代码:
1、在http请求-→>添加-→>断言-→>bean shell断言
//导入jar包的 EncryptAndDecryptinterface类
import com changfu EncryptAnd DecryptInterface;
//导入jar包用于解释json格式数据的类
import org.json.JSONObject;
//对数据进行处理器
String json_res= prev.getResponse DataAsString();/取上个响应信息
String resb= EncryptAndDecryptlnterface.getDecrypt(json_res);∥调用解密工具解密
vars.put("resb",resb);
log.info("解密后的响应信息json="+resb);
JSONObject resbonseJson= new JSONObject(resb); //解析 json
String status_str= resbonseJson.get("status") toString();//截取status字段值
vars.put("status_str",status_str);
log.info("执行状态="+ status_str);
String result="0";
vars.put("result_str",result);
if(!status_str.equals(result))
{ //响应信息的状态值 status_str不等于0,则断言其他与实际值不一致
Failure=true;
FailureMessage="statuscode与实际值不一致;
实际值为:"+status_str+",响应信息:"+resb;}