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

每周读书与学习-JMeter性能测试脚本编写实战(一)-如何实现用户需先登录,然后再请求别的接口

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。

在前面的学习中,介绍了很多Jmeter的理论知识,包括Jmeter中很多不同元件的详细介绍以及每个元件的作用,本次主要从实践的角度来介绍怎么用这些元件来完成常见性能测试脚本的编写,将会介绍一些常见的性能测试脚本编写案例。

1、如何实现用户需先登录,然后再请求别的接口

在性能测试中,如果对一个系统进行性能压测时,往往经常会需要先进行一次登录,在登录完成后,才能去对接下来的接口进行性能压测,因为如果没有登录成功的话,就无法完成后续的步骤,而且这也符合真实的用户场景,用户访问一个系统时,通常都是需要先登录后,才能进入到系统中做其他的操作,如下图所示。

在Jmeter中,如果要完成这样一个常见场景的性能测试脚本的编写,主要需要用到Jmeter的逻辑控制器中的仅一次控制器以及配置管理器下的HTTP Cookie管理器,如下图所示,是以先登录CSDN(网址:https://blog.csdn.net/)博客,然后再进行关键字搜索的真实案例的性能测试脚本的编写过程,每个主要元件的作用描述如下。

  • 仅一次控制器:主要是用于控制每次需要先进行一次登录,而且一旦登录完成后,后面就不需要再进行登录了。
  • HTTP Cookie管理器:主要用于自动存储登录成功后的Cookie,并且让取样器在调用后续的接口做性能压测时,每次都会自动带上这个Cookie,如下图所示。
  • HTTP请求取样器:由于CSDN博客网站是通过https协议在浏览器中进行访问,所以需要使用Jmeter中的HTTP请求取样器来模拟登录请求和关键字的搜索请求。
  • 查看结果树:主要用于在调试Jmeter测试计划中的脚本时,通过查看结果树来查看取样器发出请求的请求报文和响应结果等信息。

从上图中可以看到,登录CSDN时,需要以POST的请求的形式调用CSDN博客网站的登录接口/v1/register/pc/login/doLogin,并且以Body消息体数据的形式传入登录请求的参数。

从上图中可以看到,当HTTP请求是一个通用的标准的Cookie管理形式时,只需要添加HTTP Cookie管理器,在HTTP Cookie管理器中不需要做任何的其他配置。

如下图所示,为调用CSDN的搜索接口进行搜索,由于该搜索是一个GET形式的请求,所以在HTTP请求取样器中,选择了GET请求,并且在路径中,输入CSDN的搜索接口的请求路径/api/v1/search_top_data,请求参数中,分别填入:

  • 请求参数q:填入需要进行搜索的关键字 。
  • 请求参数t:填入需要进行搜索的范围。

在完成上述的Jmeter元件添加以及配置后,即可运行Jmeter性能测试计划,并且通过查看结果树来查看取样器的运行的结果,如下图所示。

从上图中可以看到,HTTP请求取样器在发起对CSDN的搜索请求时,已经自动携带了登录后的Cookie数据了。

如下图所示,当将HTTP Cookie管理器禁用后,然后再重新发起请求后,通过查看结果树查看取样器的运行结果时发现此时取样器发起对CSDN的搜索请求中,不再会自动携带登录后的Cookie数据,从图中可以看到此时显示的是no cookies,从这个示例中也可以直接看出HTTP Cookie管理器的直接作用就是自动存储登录成功后的Cookie,并且让取样器在调用后续的接口时,每次都会自动带上这个Cookie。

2、本次学习总结

读者们需要能在Jmeter工具下完成常见的性能测试脚本的编写,能完成一些常见的HTTP请求以及数据库请求的性能压测,每天学习一个知识点,持续让自己提高和进步。

出处:本次学习的内容参考自清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书

http://www.rkmt.cn/news/56231.html

相关文章:

  • 详细介绍:【iOS】自动引用计数(一)
  • 通用型质量管理SaaS平台的构建逻辑与市场实践‌
  • SBDAF60V3-ASEMI可直接替代安世PMEG6030EP
  • Ubuntu 框架使用 Docker 部署 Jenkins 详细教程
  • function sql的错误处理方法
  • function sql的示例代码有哪些
  • 大企业数字化项目失败困局与破局之道
  • 评估质量管理软件(QMS)的试金石——试用、试用、还是试用!
  • 重构lazarus时出现Error: linker: pipe: No such file or directory的解决方法
  • 2025年云南短视频制作公司品质榜单TOP5评测:AI协同生产流程,口碑数据拆解
  • 2025 年 11 月智能数控机床厂家推荐排行榜,高精度数控机床,多功能数控机床,自动化数控机床,高效数控机床公司推荐
  • 【第7章 I/O编程与异常处理】C语言的“错误处理”与Python异常机制的核心区别
  • 2025 年 11 月双头对接机床厂家推荐排行榜,双头对接机床,双头对接专用机床,高效双头对接机床公司推荐,精准高效稳定耐用!
  • 2025 年 11 月高端定制地板厂家推荐排行榜,实木定制地板,别墅专用地板,进口环保地板,工程定制地板公司推荐
  • vulnerable_docker_containement 靶机 - 实践
  • 2025 年 11 月定制地板厂家推荐排行榜,实木定制地板,强化定制地板,复合定制地板,别墅专用定制地板公司精选
  • MaxKB实现DataBase数据查询分析与AI问答功能
  • 这辈子有了
  • 详细介绍:设计模式-状态模式(State)
  • 洛谷 B4412:[GESP202509 二级] 菱形 ← 模拟算法
  • 突破亚微米光电子器件制造瓶颈!配体交换辅助打印技术搭建全打印红外探测器
  • MyEMS 的 “数字神经中枢”:解析其云 - 边 - 端协同架构如何实现毫秒级能效优化
  • c语言中的strcmp函数的模拟实现
  • 开源共享,能效升级:MyEMS 能源管理系统,让节能方案更灵活、更高效
  • 2025年长沙心理咨询师专业能力评级榜单,孩子厌学/焦虑/夫妻关系/青少年厌学/线上/婚姻情感/孩子网瘾/情绪失控/抑郁心理咨询机构排行榜
  • 2025义乌拉链头厂家哪家正规?合规厂商盘点
  • 2025年制药冻干机推荐!制药冷冻干燥机公司优选
  • 2025中山留学中介推荐-优质留学中介深度盘点
  • IDE 配置
  • 2025污水处理药剂厂家哪家好?深度测评