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

性能测试单场景测试时,是设置并发读多个文件,还是设置不同的用户读不同的文件?

两种场景的核心区别

这两种设计的根本区别在于 测试的出发点和所要验证的系统瓶颈侧重点不同

特性场景一:并发读多个不同单据场景二:不同用户读不同的单据
核心描述更侧重于 “单据”本身 作为系统资源的承载能力。更侧重于 “用户” 在系统内的操作行为以及系统对用户会话和权限的处理能力。
数据维度单据ID 是核心变量。系统需要处理大量不同的单据数据。用户凭证(Token/Session) 和 单据ID 都是核心变量。
缓存友好性不友好。由于每次请求的单据ID都不同,很可能每次都会穿透缓存,直接访问数据库,对数据库造成巨大压力。相对友好。虽然用户和单据都在变,但单个用户可能重复查看某张单据,或者系统对热门单据有缓存,可以测试缓存在多用户下的表现。
主要压力点数据库(查询、连接池)、后端服务(数据处理逻辑)。应用服务器(用户会话管理、权限验证)、缓存数据库
模拟的真实情况系统内所有用户都在查看完全不同的单据(例如:大促时,每个顾客看的商品详情页都不同)。系统内多个用户各自的权限范围内,查看自己相关的单据(例如:一个ERP系统,张三看A订单,李四看B订单,王五也看A订单)。

测试重点是什么?

尽管侧重点不同,但两者共享一些核心的测试重点,只是优先级和关注点略有差异。

共同的测试重点
  1. 响应时间

    • 这是最直观的指标。在并发下,查看单据详情页的API接口的平均响应时间、90%分位值、95%分位值 是否在可接受范围内(如:200ms以内)。

    • 重点关注高并发时,响应时间是否平稳,还是会急剧上升。

  2. 吞吐量

    • 系统在单位时间内(如:每秒)能成功处理多少個“查看单据”的请求。这是衡量系统处理能力的核心指标。

  3. 错误率

    • 在并发压力下,请求是否会出现错误?例如:5xx服务器错误、4xx客户端错误(如因资源竞争导致的锁超时)、超时等。错误率需要控制在极低水平(如<0.1%)。

  4. 系统资源消耗

    • CPU使用率:应用服务器和数据库服务器的CPU是否成为瓶颈。

    • 内存使用率:检查是否有内存泄漏或内存占用过高的情况。

    • 磁盘I/O:数据库的读写IOPS和延迟。

    • 网络带宽:网络是否成为瓶颈。

场景一特有或重点关注的测试点
  1. 数据库压力

    • SQL查询效率:由于单据ID不同,每次查询可能都是新的SQL执行。需要关注数据库的QPS 以及慢查询日志。

    • 数据库连接池:大量的并发查询会迅速占满数据库连接池,需要监控连接池的使用情况,是否出现“等待获取连接”的超时。

    • 锁竞争:虽然“读”操作通常共享锁,但如果单据数据涉及关联表或复杂查询,仍可能引发锁等待。

  2. 缓存穿透与击穿

    • 这是本场景的核心风险点。因为每个请求的单据都不同,缓存可能无法命中,导致所有请求都直接落到数据库上,引发“缓存穿透”。

    • 如果恰好在缓存失效的瞬间有大量并发请求访问同一个单据,则会发生“缓存击穿”。

    • 测试重点:验证系统是否有应对缓存穿透/击穿的策略(如:布隆过滤器、缓存空对象、互斥锁等)。

  3. 后端服务处理能力

    • 验证后端服务从数据库获取到数据后,进行数据组装、业务逻辑处理的性能极限。

场景二特有或重点关注的测试点
  1. 用户会话与认证授权

    • 会话管理:系统需要为每个并发用户维持一个会话(Session)。这会对应用服务器的内存和Session存储机制(如Redis)造成压力。

    • 权限验证:每次请求都需要验证当前用户是否有权限查看该单据。这个权限校验逻辑(如查询用户-角色-权限表)的性能至关重要,可能成为瓶颈。

  2. 缓存效率

    • 测试在真实的多用户环境下,缓存的命中率如何。例如,如果多个用户查看同一张单据,系统是否能有效地利用缓存,减轻数据库压力。

  3. 数据隔离性

    • 验证系统是否能严格保证用户A无法通过任何方式(如修改ID)查看到用户B的单据。这虽然是功能测试点,但在性能压力下,也需要确保权限校验逻辑不会出错。

  4. 负载均衡

    • 多个用户的请求会被负载均衡到不同的应用服务器上。需要测试在这种“用户分散”的模式下,集群的处理能力是否线性增长。

总结与建议

场景设计目的关键挑战推荐测试策略
并发读多个不同单据探测系统极限,寻找瓶颈。尤其关注数据库和缓存机制在最坏情况下的表现。缓存穿透、数据库连接池瓶颈、慢查询。1. 准备海量的测试单据数据。
2. 使用工具(如JMeter)循环或随机读取不同的单据ID。
3. 重点监控数据库的各项指标。
不同用户读不同的单据模拟真实用户行为,验证系统在真实场景下的稳定性用户会话管理、权限校验性能、缓存命中率。1. 准备一批测试用户和与之关联的单据数据。
2. 在测试脚本中实现用户登录->获取Token->带着Token查询关联单据的完整流程。
3. 重点监控应用服务器缓存(如Redis)的性能。

最佳实践:在实际项目中,建议两种场景都进行测试

  • 首先进行 场景一(极限压力测试),找到系统的绝对瓶颈和崩溃点。

  • 然后进行 场景二(负载测试/压力测试),用更贴近生产的环境模型,验证系统在预期用户量下的表现是否达标。

通过这两种不同维度的测试,你可以对“单据详情页”这个功能的性能有一个全面而立体的了解。

http://www.dtcms.com/a/486153.html

相关文章:

  • Qt初识(对象树,乱码问题,小结)
  • 基于Home Assistant的机器人低延迟通信项目详细调研报告
  • 深圳网站做的好的公司婚庆网站开发目的
  • 中小企业网站制作是什么宁德网站建设51yunsou
  • 代理模式 vs AOP:支付服务中的日志增强实践(含执行顺序详解)
  • linux系统运维教程,linux系统运维攻略
  • string字符集
  • Linux 命令:fsck
  • 如何提升生物科技研发辅助的效率?
  • ECEF坐标转换库
  • 企业商务网被公司优化掉是什么意思
  • 网站虚拟主机购买教程专业网站设计工作室
  • 数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)
  • 【Nature高分思路速递】 物理驱动的机器学习
  • word文档转pdf开源免费,可自定义水印
  • k8s(五)PV和PVC详解
  • 深度学习与自然语言处理
  • python 部署可离线使用的中文识别OCR(window)
  • 湖州微信网站建设网站301了不知道在哪做的
  • 请描述网站开发的一般流程图php网站开发经理招聘
  • 关于pkg-config的使用示例--g++编译过程引入第三方库(如Opencv、Qt)
  • 外贸soho先做网站wordpress如何把背景颜色调为白色
  • zk02-知识演进
  • 全自动相机在线标定方法
  • 设计模式篇之 中介者模式 Mediator
  • 卫星几何处理
  • 【个人成长笔记】在Ubuntu中的Linux系统安装sogoupinyin搜狗输入法完整版(亲测有效)
  • 3d驱动模型。如何让人物说话?什么情况下需要训练wav2lip模型,自己训练的好处是什么?操作步骤是?
  • 画册什么网站做方便做外汇著名网站
  • CRMEB标准版PHP订单发货全解析