问题
一、签名参数sign算法由文字描述,算法需自己编写
二、 参数param_json为变化的json串(json串内订单号唯一)
签名sign
1. 手动拼接后在加密,较为麻烦,且容易出错
2. 编写python或java脚本,实现加密,比方法1高效
3. 在postman的Pre-request Script
let app_secret = "xxx"; //签名app_secret
let access_token = "xxx";
let app_key = 'xxx';
let method = 'xxx';
let param_json ='{"thirdOrder":"xxx" ...}'; //参数省略
let timestamp ='2018-06-06 13:52:03'; // 注意格式
let v = '1.0';
//拼接
sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
console.log(sign);
sign = CryptoJS.MD5(sign).toString();
console.log(sign);
//设置环境变量
postman.setEnvironmentVariable("sign", sign);
效率大大提高,推荐方法。
Jmeter处理方法
-------4.1 编写java代码实现加密以及生成唯一订单号
-------4.2 将java代码打包后,拷贝到jmeter的lib/ext目录下
-------4.3 在测试计划中引入jar
-------4.4 添加BeanShell Sampler,编写脚本(类似java语法)
// 导入外部jar包(计算sign)
import com.wdzy.tools.GetSign;
// 基本不变参数
String app_secret = "xxx"; //签名app_secret
String access_token = "xxx";
String app_key = "xxx";
String method = "xxx";
String timestamp ="2018-06-06 13:52:03";
String v = "1.0";
// 处理第三方订单号
String param_json = new GetSign().getParamJson();
String param_json = param_json.toString();
vars.put("param_json",param_json.toString());
// 拼接sign串
sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
// 计算MD5值
String result = new GetSign().MD5(sign);
System.out.println(result);
// 将sign结果存储到作用域
vars.put("sign",result.toString());
本文地址: