【JMeter】前端使用JMeter测试JSEncrypt加密登录

news2024/9/25 23:18:32

前端使用JMeter测试JSEncrypt加密登录

简介:前端开发时会接触到用户登录,登录时为了数据的安全会使用到jsencrypt加密工具,同时我们需要使用jmeter来进行压测,帮助我们了解Web应用程序在高负载情况下的性能表现,从而为优化应用程序性能提供参考

环境:

1.JMeter: 5.5
2.JDK: 8.0
3.插件:
安装插件:jmeter-plugins-manager-1.3.jar
在这里插入图片描述

1.创建线程组

在这里插入图片描述

2. 创建HTTP信息头管理器

在这里插入图片描述

Content-Type :application/json

3. 创建HTTP请求

在这里插入图片描述
3.1请求接口说明requestBody:
loginType登录类型,phone登录的手机号,password加密后的密码

{
	"loginType":0, 
	"phone":"${username}",
	"password":"${rsa_pwd}"
}

4. 添加前置处理器

4.1 添加csv文件

在这里插入图片描述
在这里插入图片描述

4.2 添加JSR223预处理程序

4.2.1 获取公钥并保存

在这里插入图片描述
脚本:

// 导入必需的类
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils

// 创建一个 HTTPS 连接
def httpClient = HttpClients.createDefault()

// 创建一个 HTTP GET 请求
def httpRequest = new HttpGet("https://XXXXX.com/auth-server/oauth/publickey")

// 发送 HTTP GET 请求并获取响应
def httpResponse = httpClient.execute(httpRequest)

// 获取响应数据
def response = EntityUtils.toString(httpResponse.getEntity())

// 将响应数据保存到 JMeter 变量中
vars.put("response", response)

// 关闭连接
httpClient.close()

4.2.2 加密用户的密码

在这里插入图片描述


var log = org.apache.logging.log4j.LogManager.getLogger();
var response = vars.get("response");
var navigator = this;
var window = this;


// 引用在线jsencrypt.min.js包,也可以下载到本地再引用
load("https://passport.cnblogs.com/scripts/jsencrypt.min.js");

log.info("==================================开始加密==============================");
// 获取公钥
var pubKey = JSON.parse(response).data; 
log.info("公钥:"+pubKey);

// 使用JSEncrypt库对数据进行加密
var encrypt = new JSEncrypt();
encrypt.setPublicKey(pubKey);

// 用户名
var username = '${phone}'; 
log.info("用户名:"+username);
// 将用户名保存到 JMeter 变量中
vars.put("username", username)

// 获取密码
var password = '${password}'; 
log.info("密码:"+password);

// 获取当前时间戳
var currentTime = new Date().getTime(); 
log.info("当前时间戳:"+currentTime);

// 将密码和当前时间进行拼接
var data = password + "," + currentTime;
var rsa_pwd = encrypt.encrypt(data);
log.info("加密后数据:"+rsa_pwd);


// 将加密后数据保存到 JMeter 变量中
vars.put("rsa_pwd", rsa_pwd)

log.info("==================================结束加密==============================");

5. 添加-断言-JSON断言

在这里插入图片描述

6.添加-后置处理器-JSON提取器

提取登录成功后,后端返回的token
在这里插入图片描述

7.添加-监听器-察看结果树

在这里插入图片描述

8.添加-监听器-聚合报告

在这里插入图片描述

9.开始测试

9.1接口响应结果:

在这里插入图片描述

9.2聚合报告:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/504836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业物联网是什么?工业物联网发展前景如何?

工业物联网 (IIoT) 是在工业环境中使用互连的智能设备、传感器和软件来提高运营效率、生产力和安全性。IIoT 系统通常涉及机器、设备和传感器,这些机器、设备和传感器嵌入了相互通信以及与中央系统通信的技术。这允许对工业过程进行实时监控和分析,并能够…

jenkins配置springcloudalibaba流水线加服务器自动构建

参数化构建过程 Extended Choice Parameter Name:project_name Description:请选择需要构建的项目名称 Basic Parameter Types Parameter Type: Hidden Number of Visible Items: 20 Delimiter: , Choose Source for Value value: deerchain-gateway-95…

Linux权限划分的原则

考察的不仅是一个具体的指令,还考察对技术层面的认知。 如果对 Linux 权限有较深的认知和理解,那么完全可以通过查资料去完成具体指令的执行。更重要的是,认知清晰的程序员可以把 Linux 权限管理的知识迁移到其他的系统设计中。 权限抽象 一…

MyBatisPlus学习笔记(SpringBoot版)

MyBatisPlus学习笔记(SpringBoot版) 一、MyBatis-Plus简介1、简介2、特性3、支持数据库4、框架结构5、代码及文档地址 二、入门案例1、开发环境2、创建数据库及表2.1 创建表2.2 添加数据 3、创建Spring Boot工程3.1 初始化工程3.2 引入依赖3.3 idea中安装…

【MySQL】绪论 MySQL工作环境

文章目录 实验内容实验步骤实验内容 MySQL命令MySQL 的启动与关闭MySQL 管理备份和还原数据库navicat工具使用实验步骤 1. MySQL命令 (1)查看MySQL基本命令 (2)查看MySQL版本信息 2. MySQL的启动与关闭 (1)启动MySQL服务器 (2)测试服务器启动成功 (3)合法用

MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制

系列文章目录 MATLAB求函数极限的简单介绍 文章目录 一、问题引导 1.1、海底曲线绘制问题 1.2、绘制二维与三维图形 二、代码演示 2.2、二维与三维绘图案例 2.2.1、官方对plot函数的解释 总结 一、问题引导 1.1、海底曲线绘制问题 海底测量,低潮时海平面上…

案例研究|萤石网络通过JumpServer解决安全运维难题

杭州萤石网络股份有限公司(以下简称为萤石网络)于2015年在杭州成立,是安全智能生活主流品牌,核心产品包括智能家居摄像头、智能门锁、智能服务机器人等。2021年,萤石网络家用摄像头占国内出货量市场份额的25%&#xff…

代码随想录算法训练营day32 | 贪心算法:122.买卖股票的最佳时机II ,55. 跳跃游戏,45.跳跃游戏II

代码随想录算法训练营day32 | 贪心算法:122.买卖股票的最佳时机II ,55. 跳跃游戏,45.跳跃游戏II 122.买卖股票的最佳时机II55. 跳跃游戏45.跳跃游戏II 122.买卖股票的最佳时机II 教程视频:https://www.bilibili.com/video/BV1ev4…

Java基础(33)Java集合详解

集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。 集合类和数组不一样&…

2023年湖北安全员ABC证报考条件都有哪些?有什么区别?启程别

2023年湖北安全员ABC证报考条件都有哪些?有什么区别?启程别 一、安全员ABC证是什么? 安全员A、B、C证属于建筑三类人员证书。建筑三类人员:是指建筑施工企业主要负责人、项目负责人和专职安全生产管理人员。 建筑企业的法人代表&…

【Linux下】 线程操作及线程互斥

【Linux下】 线程操作及线程互斥 线程操作 注&#xff1a;以下函数使用时&#xff0c;编译文件时需带上-lpthread选项&#xff0c;因为下面的函数都是线程库里面的函数 pthread_self #include <pthread.h> pthread_t pthread_self(void);**作用&#xff1a;**获取当前…

淘宝天猫1688京东商品详情API接口,封装接口可高并发

要提供商品详情数据需要知道具体的商品信息&#xff0c;但通常商品详情数据应包括以下内容&#xff1a; 商品名称&#xff1a;商品的名称&#xff0c;以方便顾客对其进行识别和区分。 商品描述&#xff1a;一段让顾客能够全面认识商品的描述。应能够有效地展示商品的特性、功能…

大数据赛项|2023年广东省大学生计算机设计大赛初赛结果公示

2023年广东省大学生计算机设计大赛 暨第16届中国大学生计算机设计大赛 粤港澳大湾区赛初赛结果公示 根据《广东省教育厅关于做好2023年广东省本科高校大学生学科竞赛工作的通知》&#xff0c;广东外语外贸大学承办2023年“广东省大学生计算机设计大赛”。 在广大师生的热情…

迅为国产化RK3588开发平台16G大内存64G存储2路千兆以太网4G/5G通信

iTOP-3588开发板采用瑞芯微RK3588处理器&#xff0c;是全新一代AloT高端应用芯片采用8nmLP制程&#xff0c;搭载八核64位CPU(四核Cortex-A76四核Cortex-A55架构)集成MaliG610MP4四核GPU&#xff0c;内置AI加速器NPU&#xff0c;算力达6Tops&#xff0c;集成独立的8K视频硬件编码…

OpenCV-Python图像阈值

目录 简单阈值 自适应阈值 Otsu的二值化 所谓的图像阈值&#xff0c;就是图像二值化&#xff0c;什么是二值化&#xff0c;就是只有0和1&#xff0c;没有其他的。在OpenCV的图像里面&#xff0c;二值化表示图像的像素为0和255&#xff0c;并没有其他的值&#xff0c;它跟灰度…

js逆向-某东h5st

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 文章标题 声明前言参数分析扣代码算法还原 前言 目标网站&…

SpringCloud项目实例3--通信服务负载均衡

只是在pom.xml文件中添加了spring-cloud-starter-loadbalancer依赖并且在RestTemplate类中添加了一个LoadBalance的注解。这就是另外一种负载均衡的实现方案 Spring Cloud LoadBalancer 介绍 这种方案有什么优点呢&#xff1f; 减少整个系统的复杂度&#xff0c;不需要额外部…

BDD行为驱动开发+Python案例解析

简介&#xff1a;BDD&#xff08;Behavior-Driven Development&#xff0c;行为驱动开发&#xff09;是一种敏捷软件开发方法&#xff0c;它强调软件应该按照预期的行为来开发。BDD的核心理念是使用自然语言编写的可读性强、易于理解的用户故事&#xff08;User Stories&#x…

【前端三剑客之CSS】

目录 1.CSS1.1什么是CSS1.2 引入方式1.2.1内部样式1.2.2 行内样式表1.2.3 外部样式 2.选择器2.1 基础选择器2.1.1 标签选择器2.1.2 类选择器2.1.3 id选择器2.1.4 通配符选择器 2.2 基础选择器小结2.3 复合选择器2.3.1 后代选择器 3.元素属性3.1 字体元素3.2 文本属性3.3 背景属…

滨海县一中学被指为苏醒全国感恩教育巡回演讲营销搭台

梦想与爱同行—苏醒全国感恩教育巡回演讲活动今天下午一点半在滨海西湖路一中操场举行&#xff0c;数千学生和家长参加。 苏醒全国感恩教育巡回演讲开始&#xff0c;苏醒先生先用一口流利的英语做自我介绍&#xff0c;然后又用中文向前来参加的学生和学生家长介绍说&#xff0…