zoukankan      html  css  js  c++  java
  • Jmeter MD5加密及其运用

    常用的几种加密方式

    内置函数__MD5加密

    参数说明:

    String to calculate MD5 hash(必填):要加密的字符串

    Name of variable in which to store the result (optional):存储结果的变量的名称

    1、使用${__MD5(13300001111,phone)}进行MD5加密,加密结果为32位小写

    2、使用${__uppercase(,)}可以将加密结果转为大写,例如:${__uppercase(${__MD5(13300001111,phone)},)}

    内置函数__digest加密

    参数说明:

    Digest algorithm(必填):加密算法,支持:MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512

    String to be hashed(必填):需要加密的字符串

    Salt to be used for hashing (optional):用于加密的盐

    Upper case result, defaults to false (optional):大写结果,默认为false

    Name of variable in which to store the result (optional):存储结果的变量的名称

    使用实例:${__digest(MD5,13300001111,,true,)},对字符串进行MD5加密,并将加密结果转为大写。

    内置DigestUtils方法加密

    在Jmeter中添加BeanShell Sampler,使用如下代码进行加密。

    // md5
    import org.apache.commons.codec.digest.DigestUtils; 
    
    String str = "${token}" + "${appkey}" + "${data}";
    String sign = DigestUtils.md5Hex(str);
    log.info("加密后的标签为:" + sign);
    
    vars.put("sign",sign);
    // sha256
    import org.apache.commons.codec.digest.DigestUtils;
    
    String keytoSign = "需要进行加密的字符串";
    String sign = DigestUtils.sha256Hex(keytoSign);
    log.info("加密结果为:"+sign);
    
    vars.put("sign",sign);

     使用Python脚本进行加密

    在Jmeter中添加JSR223 Sampler,语言选择python,代码如下:

    import hashlib
    
    str = "13300001111"
    m = hashlib.md5()
    b = str.encode(encoding='utf-8')
    m.update(b)
    str_md5 = m.hexdigest()
    str_md5 = str_md5.upper()
    
    vars.put("phone",str_md5)

    需要注意的是,JSR223 Sampler只支持python2,不支持python3。

    实际运用

    工作场景:现有一个接口,需要调用10000笔,入参中的CELL_PHONE_HASH不能重复。这里选择

    Jmeter内置的DigestUtils方法来编写脚本代码。

    import org.apache.commons.codec.digest.DigestUtils;
    
    String str = "15510${__Random(10000,20000,)}6";
    String phone = DigestUtils.md5Hex(str);
    vars.put("md5_phone",phone.toUpperCase());
    
    log.info("CELL_PHONE的值为:" + str);
    log.info("CELL_PHONE加密后的值为:" + phone);

    在接口入参中CELL_PHONE_HASH引用该变量,保存脚本然后运行。

    通过Debug Sampler可以看到手机号MD5随机生成,接口调用成功。

    作者:Sweettesting —— 半醉半醒半浮生

    出处:http://www.cnblogs.com/Sweettesting/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    部署高可用keepalived组件
    Jenkins-Pipeline 流水线发布部署项目
    kubernetes Dashboard 使用RBAC 权限认证控制
    无法找到msvcp90.dll的一个碰巧解决办法
    QQ 聊天机器人小薇 1.0.1 发布!
    QQ 聊天机器人小薇 1.0.1 发布!
    Android Studio 小技巧(1):如何导入AAR文件
    <Android 基础(七)> DrawerLayout and NavigationView
    编写xml文件的几个注意事项
    <Android 基础(六)> ActionBar
  • 原文地址:https://www.cnblogs.com/Sweettesting/p/15005733.html
Copyright © 2011-2022 走看看