Jmeter 接口测试参数处理

问题:

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

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

解决:

一、 签名sign:

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

2. 编写python或java脚本,实现加密,比方法1高效

3. 在postman的Pre-request Script

 1 let app_secret = "xxx"; //签名app_secret
 2 let access_token = "xxx";
 3 let app_key = 'xxx';
 4 let method = 'xxx';
 5 let param_json ='{"thirdOrder":"xxx" ...}'; //参数省略
 6 let timestamp ='2018-06-06 13:52:03';  // 注意格式
 7 let v = '1.0';
 8 
 9 
10 //拼接
11 sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
12 console.log(sign);
13 sign = CryptoJS.MD5(sign).toString();
14 console.log(sign);
15 
16 //设置环境变量
17 postman.setEnvironmentVariable("sign", sign);
View Code

效率大大提高,推荐方法。

4. Jmeter处理方法:

   -------4.1 编写java代码实现加密以及生成唯一订单号

   -------4.2 将java代码打包后,拷贝到jmeter的lib/ext目录下

   -------4.3 在测试计划中引入jar

   -------4.4 添加BeanShell Sampler,编写脚本(类似java语法)

 1 // 导入外部jar包(计算sign)
 2 import com.wdzy.tools.GetSign;
 3 
 4 // 基本不变参数
 5 String app_secret = "xxx"; //签名app_secret
 6 String access_token = "xxx";
 7 String app_key = "xxx";
 8 String method = "xxx";
 9 String timestamp ="2018-06-06 13:52:03";
10 String v = "1.0";
11 
12 // 处理第三方订单号
13 String param_json = new GetSign().getParamJson();
14 String param_json = param_json.toString();
15 vars.put("param_json",param_json.toString());
16 
17 // 拼接sign串
18 sign = app_secret +"access_token"+ access_token +"app_key"+app_key+"method"+method+"param_json"+param_json+"timestamp"+timestamp+"v"+v+app_secret;
19 // 计算MD5值
20 String result = new GetSign().MD5(sign);
21 
22 System.out.println(result);
23 // 将sign结果存储到作用域
24 vars.put("sign",result.toString());
View Code

 

转载于:https://www.cnblogs.com/wdzy/p/11313136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值