Chinaunix首页 | 论坛 | 博客
  • 博客访问: 920585
  • 博文数量: 286
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2874
  • 用 户 组: 普通用户
  • 注册时间: 2019-01-04 10:09
个人简介

Linux资讯分享

文章分类

全部博文(286)

文章存档

2019年(286)

我的朋友

分类: LINUX

2019-08-20 17:26:08

问题

一、签名参数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());

本文地址:

阅读(5345) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~