【性能测试-登录时密码加密存储如何传参】

目的】

登录接口,密码加密传输,开发不做处理的情况下,密码如何加密传输

【方案】

使用前置处理器:JSR223 预处理程序,主要是在执行登录接口前将密码按照加密算法获得对应的加密密码,并传入接口

【说明】前端开发配合

1)前置的语言,这里使用js

2)这里load的算法需要两个js加密的文件,前端开发提供。这里的密码先经过sm2加密后又经过base64加密;所以引用了两个js的加密

3)这里的js文件要放到jmeter的安装包的Bin目录才行

4)公钥开发提供

5)可以调试打印: log.info("====jinru "+encryptData)

【脚本】

var navigator = this;
var window = this;

// 引用在线jsencrypt.min.js包,也可以下载到本地再引用
load("D:/work/soft/jmeter/apache-jmeter-5.6.3/bin/sm2.js");
load("D:/work/soft/jmeter/apache-jmeter-5.6.3/bin/base64.js");
 log.info("加载完成====");
// 1、生成1024位的私钥 openssl genrsa -out rsa_1024_priv.pem 1024
// 2、生成1024位的公钥 openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
// var sm2 = require("./sm2.js");
// var Base64 = require("./base64.js");

// log.info("jsencrypt.min.js加载成功!");
// BASE64.encode(inputStr);//普通Base64编码
// 加密
function SM2_ENC() {
  var pswd = "P@ss*w0rd@Sxyz!";
  var publicKey =
    "04487C1509763A8FA0A6FF3B1008B86C7C8C16DF6D9389A58DC12D4480C1A6BEB4717E368F3E62E67A4D2A417E87BB503341889A070DA710BBDF7E2B5810BC0000"; // publicKey
  var cipherMode = 1;
  
  var encryptData = sm2.doEncrypt(pswd, publicKey, cipherMode);
  log.info("====jinru "+encryptData)
  var password = BASE64.encode("04" + encryptData);

  log.info("加密后password====" + password);

  // vars.put("username", username);
  vars.put("password", password);
  // return password;
}

SM2_ENC();

【注意】

js脚本前端提示,前端开发本地执行没问题,但是放到jmeter就不行,此时需要调整脚本;另外算法文件js也有报错的情况,需要开发配合修改的!

【登录接口】

按照如下$引用密码即可,可以使用查看结果数查看传参过程

相关推荐
美团测试工程师2 天前
基于Jmeter的分布式压测环境搭建及简单压测实践
分布式·jmeter
綦枫Maple2 天前
Jmeter基础篇(24)Jmeter目录下有哪些文件夹是可以删除,且不影响使用的呢?
jmeter
惜.己3 天前
Jmeter中的前置处理器(二)
测试工具·jmeter·1024程序员节
问道飞鱼3 天前
【Java知识】Java性能测试工具JMeter
java·测试工具·jmeter
古人诚不我欺3 天前
jmeter常用配置元件介绍总结之断言
jmeter
惜.己3 天前
Jmeter中的监听器(二)
测试工具·jmeter·1024程序员节
ccsd113 天前
jmeter并发测试
java·jmeter
惜.己3 天前
Jmeter中的监听器(四)
测试工具·jmeter·1024程序员节
惜.己3 天前
Jmeter中的前置处理器(一)
测试工具·jmeter·1024程序员节
古人诚不我欺4 天前
jmeter常用配置元件介绍总结之逻辑控制器
测试工具·jmeter