var Data = Json.Data;
var secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;
字符串拼接
javascript
var str = AppKey + TimeStamp + Data + secretKey;
进行md5运算并将生成的hash序列转换为字符串
javascript
var strmd5= CryptoJS.MD5(str).toString();
修改json对象中sign并将md5对象写回body中
javascript
Json.Sign = strmd5;
pm.request.body.raw = JSON.stringify(Json); // 将修改后的JSON转换回字符串格式写回到请求体中
完整代码:
javascript
/*
vo加密规则:
appkey,timestamp,data,secret四个字段的值拼接,使用32位md5加密
*/
/*
- 获取请求参数
*/
var Json = JSON.parse(pm.request.body); // 将body的参数转换为json对象
/*
- 获取所需变量
*/
var TimeStamp = Date.parse(new Date()) / 1000 - 10; // 获取时间戳
Json.TimeStamp = TimeStamp; // 修改JSON
var AppKey = Json.AppKey;
var Data = Json.Data;
var secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;
/*
- 拼接字符串并加密
*/
var str = AppKey + TimeStamp + Data + secretKey;
var strmd5= CryptoJS.MD5(str).toString(); // 调用方法进行md5运算并将生成的hash序列转换为字符串
Json.Sign = strmd5; // 修改JSON
pm.request.body.raw = JSON.stringify(Json); // 将修改后的JSON写回到请求体中
2.JMeter
在JMeter的时间戳可以直接使用JMeter自带函数在body中获取,当然也可以在BeanShell前置处理器中使用代码获取
/1000是因为JMeter默认生成的时间戳为13位时间戳,我们只需要10位即可。
导包(org.json为第三方jar包)
java
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.config.;
import org.json.;
获取请求传入的body,将其转化为Json对象
java
// 获取请求
Arguments arguments = sampler.getArguments();
// 获取请求中的body内容
Argument arg = arguments.getArgument(0);
// 获取body的value,并将其转化为JSONObject对象
JSONObject dataobj = new JSONObject(arg.getValue());
获取变量并拼接
java
String TimeStamp = dataobj.optString(“TimeStamp”);
String AppKey = dataobj.optString(“AppKey”);
String Data = dataobj.optString(“Data”);
String secretKey = “a323f9b6-1f04-420e-adb9-b06ty67b0e63”;
String str = AppKey + TimeStamp + Data + secretKey;
进行md5运算
java
sign = DigestUtils.md5Hex(str);
修改json对象的sign并转换为字符串写回body中
java
dataobj.put(“Sign”, sign); // 修改Sign
arg.setValue(dataobj.toString()); // 转换为字符串并歇回request-body中
完整代码:
java
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jmeter.config.;
import org.json.;
/*
- 获取请求传入的body,将其转化为Json对象
*/
// 获取请求
Arguments arguments = sampler.getArguments();
// 获取请求中的body内容
Argument arg = arguments.getArgument(0);
// 获取body的value,并将其转化为JSONObject对象
JSONObject dataobj = new JSONObject(arg.getValue());
/*
- 获取变量并拼接字符串
*/<