接口测试 带签名接口的处理方式

周小丽 · 2022年06月24日 · 最后由 周小丽 回复于 2022年07月01日 · 5744 次阅读

1) 带签名接口的处理方式
如下是测试接口

不涉及私钥的签名方式

涉及私钥的签名方式

import org.apache.commons.codec.binary.Hex;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

private String md5(String source) throws NoSuchAlgorithmException {
    String secret = "7601be70b5f4*****e377c0726922";//秘钥联系开发人员获取
    source += secret;
    MessageDigest md5 = MessageDigest.getInstance("MD5");
    md5.update(source.getBytes());
    byte[] bytes = md5.digest();
    return Hex.encodeHexString(bytes).toLowerCase();
}

String source = "${x}" + "${y}" + "${__time(,time)}";
log.info("----time---"+vars.get("time"));

String sign = md5(source);
vars.put("newsign", sign);
log.info("---newsign---"+vars.get("newsign"));
  1. 先拼接 phoneNum、optCode、timestamp(当前时间)${__time(,)} : 默认该公式精确到毫秒级别, 13 位数 yyyy-MM-dd HH:mm:ss
  2. 然后对拼接后的字符串进行 md5 加密
  3. 将加密后的数据加到 sign 字段中 jmeter4 写代码 __digest 可对多个字符串拼接起来后进行加密,支持多种加密方式,如 MD5、MD2、SHA-1、SHA- 224、SHA-256、SHA-384、SHA-512。(jmeter5 以上)

2) Jar 包引用方式
 Import 方式

 Source 方式

共收到 8 条回复 时间 点赞

JMeter 确实很强啊,提供了这么多实用工具。话说 MD5 加密那段代码,应该可以直接用 Spring 封装好的方法。

import org.springframework.util.DigestUtils;
String password = DigestUtils.md5DigestAsHex("abd".getBytes());
System.out.println(password);  //4911e516e5aa21d327512e0c8b197616

jmeter 很强很实用,学到了

打卡 学习了!

项目正需要,试试

Jmeter 本身也提供 MD5 加密

import org.apache.commons.codec.digest.DigestUtils;
String password = vars.get("password") ;
String passwordmd5 = DigestUtils.md5Hex(password);

膜拜 脚本是自己根据参数去写的吗 还是找开发

Tester_谜城 回复

如果只是简单的 MD5 方式,可以用 jmeter 的,但是很多公司的的加密方式是 MD5 基础上又封装了自己的方法,这时候不能用 jmeter 的

hug. 回复

找开发要加密部分的函数调用方法

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册