问题

一、签名参数sign算法由文字描述,算法需自己编写

二、 参数param_json为变化的json串(json串内订单号唯一)

签名sign

1. 手动拼接后在https://www.cmd5.com/加密,较为麻烦,且容易出错

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());

原文来自:https://www.bbsmax.com/A/KE5Q37QLzL/

本文地址:https://www.linuxprobe.com/jmeter.html编辑:向云艳,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/