Jmeter系列(47)- 针对需要登录的接口如何做性能测试?

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: Jmeter系列(47)- 针对需要登录的接口如何做性能测试?

如果你想从头学习Jmeter,可以看看这个系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

前言


  • 在实际业务场景中,很多业务都需要先登录才能正常使用
  • 在做接口性能测试的时候,需要测试登录后才能访问的接口肯定是无法避免的
  • 那么,我们怎么才能完成先登录后发出请求的性能脚本呢

 

思路


  1. 发出登录请求
  2. 提取响应的认证内容
  3. 后面的请求引用认证内容

 

提出问题

做性能测试,是模拟多个虚拟用户实现并发的,那我们的登录接口也需要重复发起吗?

可以类比一个场景

做 UI 自动化的时候肯定也需要登录的,一般我们会将登录放到全局前置来操作,所以整个测试流程下来只需要登录一次

关键点

一个用户只需要登录一次,避免重复发起登录请求,造成不必要的资源消耗

 

最简单的场景


  • 所有虚拟用户使用同一个用户账户,每次都是先调登录接口,再调登录之后接口请求吗?
  • 如果你的系统,业务上允许一个用户在不退出情况下,反复登录,且没有登录次数限制,这种最理想的情况,你完全可以这么做
  • 做完了,你可能会想,我不用一个账户,100个并发用户数,我就用100个独立账户,

 

每个用户拥有独立账户


灵魂拷问

每个虚拟用户都试用一个独立账户,还是先调登录,再调登录之后接口请求,这样可以吗,要怎么做?

 

当然可以

  • 在你的线程组里面用上 csv 数据文件设置读取出用户账户信息,或者用 JDBCrequest 从数据库获取出用户信息
  • 然后再在登录接口中用取出的用户信息来登录
  • 这样,在性能测试时,就会循环使用你用户总量中的用户来发送请求
  • 这样,理论上是行的通的,但是,现实有些骨感
  • 因为做性能测试,使用的是高并发,可能存在竞争关系,可能出现后续接口,使用的关联参数取不到值的情况
  • 从而导致请求报错,而这种错误,不是性能测试服务器响应报错,而是脚本问题导致报错,影响我们对性能结果的判断

 

那么,我们就会问,还有没有其他办法呢?

 

终极好办法


上面也说了一个关键点:一个用户只需要登录一次

既然我们一个线程就是一个模拟用户,那我们只需要针对每个线程做到只发出一次登录请求,其他接口可以无限次发起

image.png

具体步骤

  1. 在线程组下添加一个逻辑控制器【仅一次控制器】
  2. 在该逻辑控制器下添加登录请求
  3. 登录请求下添加提取器,提取登录响应内容
  4. 和逻辑控制器平级下添加需要并发的请求

 

运行查看聚合报告

image.png

可以看到 login 登录接口总共调用了 5 次,针对重置密码接口进行了并发请求

注意:并发请求并不代表在测试过程中,每个用户的并发总次数会相等

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
144 3
|
15天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
49 3
|
21天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
45 3
|
20天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
36 1
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
64 4
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
113 2
|
4月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
130 0
下一篇
无影云桌面