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

目的】

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

【方案】

使用前置处理器: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也有报错的情况,需要开发配合修改的!

【登录接口】

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

相关推荐
少云清1 天前
【金融项目实战】6_接口测试 _Jmeter自动化脚本实现(重点)
jmeter·自动化·金融项目实战
少云清1 天前
【金融项目实战】5_接口测试 _Jmeter功能脚本实现
jmeter·金融项目实战
卖个几把萌2 天前
【11】JMeter在GUI页面修改语言后右上角不显示线程数和持续时间问题解决
测试工具·jmeter
张永清-老清2 天前
每周读书与学习->JMeter性能测试脚本编写实战(四)-利用JMeter对MySQL数据库查询进行性能测试
学习·jmeter·性能调优·jmeter性能测试·性能分析·每周读书与学习
Jul1en_2 天前
【性能测试工具】JMeter下载安装、编辑环境变量和中文配置
测试工具·jmeter
一碗面4214 天前
Jmeter的进阶功能
jmeter
月明长歌6 天前
从零构建高并发测试体系:JMeter 接口压测与全链路实战指南
jmeter
一碗面4217 天前
Jmeter的基本使用
jmeter
余防8 天前
jmeter使用
jmeter
maqiang_7208 天前
jmeter做压力测试如何找到软件瓶颈
jmeter·压力测试