当前位置: 首页 > news >正文

JMeter实战之——模拟登录

在这里插入图片描述

本篇介绍使用JMeter 如何对需要登录的站点进行压力测试。

基本Session验证的机制

使用session进行请求验证的机制是一种常见的Web应用认证方式。 该认证方式的主要内容如下:

一、登录过程

  1. 用户输入:用户在登录页面输入用户名和密码。
  2. 发送请求:浏览器将用户名和密码作为请求参数发送到服务器。
  3. 服务器验证:服务器接收到请求后,验证用户名和密码的正确性。
    • 如果验证失败,服务器返回错误信息,提示用户重新输入。
    • 如果验证成功,服务器会创建一个session对象,并将用户信息(如用户名、权限等)存储在session中。
  4. 生成session ID:服务器为每个session生成一个唯一的session ID,用于标识该session。
  5. 发送session ID:服务器将session ID通过Set-Cookie响应头字段发送给客户端(浏览器),并指示浏览器保存该Cookie。

二、请求验证过程

  1. 发送请求:用户在后续访问需要认证的页面或接口时,浏览器会自动将保存的包含session ID的Cookie附加在HTTP请求的头字段Cookie中发送给服务器。
  2. 服务器验证:服务器接收到请求后,从请求头中的Cookie提取session ID。
    • 服务器根据session ID查找对应的session对象。
    • 如果找到对应的session对象,且session未过期,则认为用户已经登录,并允许访问该页面或接口。
    • 如果未找到对应的session对象,或session已过期,则认为用户未登录或会话已失效,服务器将返回错误信息或重定向到登录页面。

三、session管理

  1. session存储:session对象通常存储在服务器上,可以是内存、数据库或文件等。
  2. session过期:服务器可以设置session的过期时间,当session超过过期时间时,服务器将自动销毁该session对象。
  3. session注销:用户可以通过点击注销按钮或关闭浏览器等方式注销登录。注销时,服务器将销毁对应的session对象,并清除客户端的Cookie。

捡重点来说:

  1. 服务端产生Session ,并生成一个sessionID 给浏览器端
  2. 浏览器端保存这个SessionID到Cookie 中
  3. 后续浏览器端请求资源的时候都会带上这个SessionID
  4. 服务端验证这个SessionID是否正确和有效。

基于Session登录验证的JMeter 测试

使用JMeter 测试使用Session验证的站点很简单:

  1. 调用登录的接口
  2. 调用其他的接口

也就是在调用需要测试的接口前,想调用登录的接口, JMeter 会自动保存登录成功后的SessionID 并且后续请求会自动带上这个Cookie,这里自动带的原因是因为这个Cookie是通用的,也就是 * JSESSIONID

JSESSIONID是一个特定类型的Cookies,用于跟踪用户会话。它是由Java Servlet规范定义的一种机制,用于在用户与Java Web应用程序之间保持会话状态。

基于以上在JMeter 中建立的测试项目就基本上很简单:

在这里插入图片描述

  • 线程组下面包含一个登录请求以及若干个获取数据的请求。

实战场景之复杂验证

这里遇到一个实战的项目,因为单点登录或是安全性的要求,除了JSESSIONID之外,会额外产生一个Token 进行验证。原因是:

  • 这个站点本身调用了多个其他的服务,而调用其他服务的验证就是使用token 的方式。
  • 同时这个站点本身也是使用自行产生的token 进行验证

在调用登陆之后,会将这个通过通过响应内容的方式返回。

在JMeter 中需要从响应中解析出这个Token 附件到后续请求中。

于是需要在Login的请求中添加一个 Regular Expression Extractor解析出自行产生的Token。

需要从返回中通过Regular Expression Extracotor 解析Token , 附加到请求头中, 解析的配置类似如下:

在这里插入图片描述

除以上外,还需要添加一个HTTP Cookie Manager, 以便在后续的请求中附加上这个Cookie:
在这里插入图片描述

测试计划的完整结构如下:

在这里插入图片描述



相关文章:

JMeter实战之——模拟登录

本篇介绍使用JMeter 如何对需要登录的站点进行压力测试。 基本Session验证的机制 使用session进行请求验证的机制是一种常见的Web应用认证方式。 该认证方式的主要内容如下: 一、登录过程 用户输入:用户在登录页面输入用户名和密码。发送请求&#x…...

智能台灯设计(一)原理图设计

1. 前言 作者最近突发奇想,想自己做一个小台灯,设想的功能有:带锂电池可充电、可以调节亮度,后续通过增加WIFI模块实现手机控制开关功能。目前先实现最简单的功能,有时间再一步步完善吧。 2. 原理图设计 充电芯片使用…...

数据库查询返回结果集及其元数据信息:ResultSet 和 ResultSetMetaData 深度解析

全文目录: 开篇语📌 目录🌟 前言📝 摘要📚 简介🔍 概述🧩 核心源码解读1️⃣ 创建数据库连接2️⃣ 执行查询获取结果集3️⃣ 读取查询数据4️⃣ 获取元数据信息 💻 案例分析&#x1…...

2.插入排序(斗地主起牌)

一、思想 扑克牌起牌 代码: 二、时间复杂度: 最好情况(已经排序好的):T O(N) 最坏情况(完全逆序):T O(N^2) 三、优劣: 严格的大小比较之后才进行错位插入&#x…...

漫谈编程小白如何成为大神:夯实基础,开启通神之路

在当今数字化时代,编程已成为一项基本技能,对于大学新生而言,掌握编程能力不仅能够为学术研究提供支持,还能为未来的职业生涯开辟广阔天地。然而,面对琳琅满目的编程语言和学习资源,新生们往往会感到迷茫和…...

基于机器学习的个性化电影推荐系统【源码+安装+讲解+售后+文档】

【1】系统介绍 研究背景 随着互联网技术的迅速发展,数字娱乐内容特别是电影和电视剧的数量急剧增加。用户在享受丰富内容的同时,也面临着选择困难的问题,即“信息过载”。传统的搜索和分类方法已经无法满足用户日益增长的个性化需求。与此同…...

企业如何配合好等级保护测评工作?

企业如何配合好等级保护测评工作,是一个涉及多方面因素的系统性任务。等级保护测评,简称等保测评,是中国对信息和信息系统安全的重要管理手段和评估制度。通过这一制度,企业可以全面了解其信息系统的安全状况,及时发现…...

Could not find artifact cn.hutool:hutool-all:jar:8.1 in central 导入Hutool报错

<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.9</version></dependency> 引入hutool 8.1版本的工具…...

【功能安全】汽车功能安全个人认证证书

目录 1、证书 2、课程信息 &#x1f4d6; 推荐阅读 1、证书 汽车功能安全工程师去拿类似莱茵、SGS、南德颁发的证书&#xff0c;如下&#xff1a; 2、课程信息 一般上什么课程了&#xff0c;课程信息大概如下&#xff1a; 汽车功能安全工程师认证课 &#xff08;3天&#…...

axios直接上传binary

axios直接上传二进制文件 、 axios直接上传apk、axios直接上传binary postman中的参数选项中有个binary&#xff0c;平常我们很少使用&#xff0c;可能有的同学遇到这种情况不太会了&#xff0c;认为后端应该有个字段名来接收&#xff0c;或者使用 Formdata&#xff0c;但其实…...

量化交易API接口是什么?如何申请和应用?

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…...

语义分割:YOLOv11的分割模型训练自己的数据集(从代码下载到实例测试)

文章目录 前言一、环境搭建二、构建数据集三、修改配置文件①数据集文件配置②模型文件配置 四、模型训练和测试模型训练模型验证模型推理 总结 前言 专栏目录&#xff1a;YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改…...

Python爬虫:从入门到精通

Python爬虫&#xff1a;从入门到精通 在数字时代&#xff0c;信息就如同水源&#xff0c;源源不绝。然而&#xff0c;当你想要从海量的信息中汲取有价值的“水”&#xff0c;你会发现这并不是一件容易的事。这就是为什么网络爬虫出现了。它们帮助我们在网络的海洋中航行&#…...

Web组态软件

Web组态软件是近年来前端开发领域的一股新兴力量&#xff0c;它以其独特的魅力吸引着越来越多的开发者们。那么&#xff0c;Web组态软件到底是什么&#xff1f;它有哪些特点&#xff1f;我们又该如何选择和使用它呢&#xff1f;下面&#xff0c;就让我们一起探讨这些问题。 一…...

Java中为什么要私有化构造方法

为什么要私有化构造方法 要私有化的方法不是来描述一类事物的&#xff0c;创建没有任何意义 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; 为什么要将构造方法私有化&#xff1f; 问&#xff1a;如果要限制一个类对象产生&#xff0c;即&…...

【大数据学习 | kafka】kafuka的基础架构

1. kafka是什么 Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的&#xff08;Replicated&#xff09;、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比&#xff0c;KafKa能够很好…...

2-petalinux2018.3摸索记录-petalinux rootfs

1Filesystem Packages文件系统软件包2Petalinux Package GroupsPetalinux软件包组3Image Features镜像特性4apps应用程序5user packages用户软件包6Petalinux RootFS SettingsPetalinux根文件系统设置 Filesystem Packages&#xff08;文件系统软件包&#xff09; 这个选项主要…...

RHCE作业二

1.要求&#xff1a; 配置nginx服务通过ip访问多网站 2. 1关闭防火墙 2创建ip 3配置 4创建文件 5测试...

GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册

GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册 GPS/北斗时空安全隔离装置(卫星时空防护装置)使用手册 时空安全隔离装置采用先进的防欺骗抗干扰技术&#xff0c;能够有效检测识别欺骗干扰信号&#xff0c;并快速对异常信号进行关断、切换&#xff0c;消除欺骗干扰影响。…...

【C++篇】深度解析类与对象(下)

引言 在上一篇博客中&#xff0c;我们学习了C的基础类与对象概念&#xff0c;包括类的定义、对象的使用和构造函数的作用。在这一篇&#xff0c;我们将深入探讨C类的一些重要特性&#xff0c;如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象&#xff0c;…...

FireRedASR Pro Java集成开发指南:SpringBoot微服务语音处理实战

FireRedASR Pro Java集成开发指南&#xff1a;SpringBoot微服务语音处理实战 如果你是一个Java后端开发者&#xff0c;最近接到了要给系统加上语音识别功能的需求&#xff0c;比如处理用户上传的客服录音&#xff0c;或者分析会议纪要&#xff0c;那你可能正在寻找一个既稳定又…...

SpringBoot集成MinIO实战:从零构建企业级文件存储服务

1. 为什么选择MinIO作为企业级文件存储方案 MinIO这几年在企业级存储领域越来越火&#xff0c;我最早接触它是在2018年做电商项目时遇到的图片存储需求。当时对比了FastDFS、HDFS等方案后&#xff0c;最终选择了MinIO&#xff0c;现在回头看这个决定非常正确。MinIO最吸引人的地…...

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置:二分查找实战

刷题路上&#xff0c;二分查找是绕不开的经典算法&#xff0c;而LeetCode 34题「在排序数组中查找元素的第一个和最后一个位置」&#xff0c;正是二分查找的进阶应用——它不仅要求我们找到目标值&#xff0c;更要精准定位其在非递减数组中的起始和结束位置&#xff0c;同时还要…...

ClawHub 抖音 Skills 完整盘点:36 个 Skills 分类与选型指南

ClawHub/OpenClaw 平台上共有 36 个专门针对抖音&#xff08;Douyin&#xff09;的 Skills&#xff0c;覆盖热榜监控、视频下载、自动发布、转录分析、内容创作、合规检测等完整工作链。本文从技术实现角度做完整整理&#xff0c;含安装命令和实现细节说明。 数据截至 2026 年…...

解决 chattts.core 的 invalid characters 警告:高效字符处理方案

最近在折腾一个文本转语音的项目&#xff0c;用到了 chattts 这个库。功能很强大&#xff0c;但时不时就会在日志里看到一行刺眼的警告&#xff1a;chattts.core:invalid characters found! : {:}。这个警告虽然不会直接让程序崩溃&#xff0c;但就像鞋里的一粒沙子&#xff0c…...

论文开题不再愁!书匠策AI来助你一臂之力

在学术的浩瀚海洋中&#xff0c;每一位扬帆起航的学子都渴望找到那座指引方向的灯塔&#xff0c;尤其是在撰写论文开题报告这一关键时刻。开题报告&#xff0c;作为论文的起点&#xff0c;不仅承载着研究的方向与目的&#xff0c;更是展现研究者学术素养与创新能力的重要窗口。…...

神经信号干扰器:让脑机监控读取错误数据

在软件测试领域&#xff0c;精准的数据采集与分析是保障产品质量的核心。随着脑机接口&#xff08;BCI&#xff09;技术在测试工具中的广泛应用&#xff0c;神经信号监控已成为提升缺陷检出率和决策效率的关键手段。然而&#xff0c;神经信号干扰器的出现&#xff0c;正悄然威胁…...

OpenClaw对接GLM-4.7-Flash:模型性能优化指南

OpenClaw对接GLM-4.7-Flash&#xff1a;模型性能优化指南 1. 为什么需要专门优化GLM-4.7-Flash的对接&#xff1f; 上个月我在本地部署了OpenClawGLM-4.7-Flash组合&#xff0c;原本期待它能流畅处理我的自动化办公需求&#xff0c;结果遭遇了典型的"水土不服"症状…...

毕设程序java基于的动漫分析与交流平台 基于Spring Boot的二次元文化社区与作品分享系统 Java驱动的ACG内容聚合与互动服务平台

毕设程序java基于的动漫分析与交流平台31sl5luf&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网技术的飞速发展和Z世代文化消费的崛起&#xff0c;动漫产业已从边缘亚文…...

Docker 学习之路-从入门到放弃-Jenkins:4

Jenkins 打开 ✅ 如图已经完全成功安装并初始化Jenkins了&#xff01;从图1可以确认&#xff1a;能正常访问Jenkins Web管理界面、登录成功核心功能入口&#xff08;Create a job/Manage Jenkins等&#xff09;正常显示构建执行器&#xff08;Build Executor Status&#xff09…...