三、性能测试场景设计

news2024/12/23 6:33:33

性能测试场景设计

    • 一、引言:如果公司要求你去做性能测试,遇到这些场景,我们要如何设计?
    • 二、6种常见设计方法
      • 1、普通性能场景设计
      • 2、负载测试性能场景

  • 一、引言:如果公司要求你去做性能测试,遇到这些场景,我们要如何设计?

    需求1, 活动页面,要你做性能测试, 看是否能满足1000个人同时访问

    需求2:对接的接口,如果要满足 50tps,这样的场景怎么设计

    需求3: 秒杀活动要看秒杀时,服务器能否支持500个人同时秒杀

  • 二、6种常见设计方法

    • 普通性能场景设计
    • 阶梯性能场景(负载测试场景)
    • 压力测试场景
    • 面向目标场景(lr很容易,但是jmeter,没有系统讲解,会不知道怎么做)
    • 混合场景设计(混合,if条件)不同数量的人,向不同的接口发起请求
    • 有时间规律场景
  • 1、普通性能场景设计

    • 线程组

      • 1)线程数: 模拟的并发用户数量

        • 线程数,有没有限制呢?
          • jmeter本身是没有对线程数做限制
          • 但是, jmeter启动这些并发用户数时,需要消耗资源,受电脑cpu的主频限制,一台电脑不可能创建无限量的线程数
            • 实际的情况是比如http协议的脚本的线程数,大概能产生1500左右。2000个可能产生,但是可能会出错。1000左右比较保守,可能能产生。
            • 也就是说,1台电脑,http协议脚本,保守估计是可以产生1000个并发用户数
            • 如果你想模拟超过1000并发用户数,你可能需要考虑 分布式来实现
      • 2)ramp-up时间

        • 启动所有线程的时间(前提:线程数设置在合理的范围)
        • 在ramp-up时间结束点,所有的线程都会启动
        • 案例:5s内启动300个线程在这里插入图片描述
        • 在ramp-up时间内,是否均匀产出并发用户数,是无法确定的(拿上面的例子举例,不能保证每秒启动60个线程)
        • 在启动时间内,产生的并发用户数,一产生,就会去发起请求
        • 启动了并发用户,就会去发起请求,不同时间产生的并发用户数,与前面产生的并发用户数,调用的接口可能不一样
        • jmeter做性能测试,更多时候,使用的是,广义并发
        • ramp-up时间要大于等于1
        • 线程数和ramp-up时间,怎么设置才比较合理?
          • 500以内并发用户, ramp-up时间建议设置2~4s
          • 500-1000的并发,ramp-up时间建议设置5s
          • >1000 ramp-up时间建议设置5-8s
          • 一个原则:
            • ramp-up时间在总执行时间中,占比要很低(比如你总执行时间是10s,那上面那些建议时间就太高啦hhh)。
            • 一般的情况,一个性能测试的总执行时间是几十秒钟~几十分钟
      • 3) 循环次数
        在这里插入图片描述

        • 默认必须大于等于1
        • 循环次数,就是每个并发用户数要去执行的请求数量
        • 如果勾选了永远选项,就会一直循环,直到你点击停止
          • 这个停止会有问题吗?
            • 如果勾选了永远后点击停止,会导致请求报错或卡死
            • 这个选项要与调度器 一起使用
          • 调度器:
            • 持续时长:设置持续时长(s)
            • 启动延迟:设置延迟时长(s),一般真正做性能测试的时候不用
          • 实践:300个并发用户,持续运行300s(忘了截图了,先把数据贴上来吧,尴尬。我们的脚本可以加上聚合报告和响应时间图)
            • 聚合报告如下: avgRT: 0.117s 90%RT:0.262s avgTPS: 2544.9
            • 结论:
              • 90%RT:0.262s 可以看到,这个响应时间是比较快的,因为用户满意度指数1.5s
              • 300个人, avgTPS: 2544.9 tps>user 那么,每个人1秒钟发了约8个请求,所以,我们本次300个并发用户数,未超过这个接口能承受最大并发用户数
              • 可以简单得到一个结论: 这个查询接口最大并发用户数大于300
  • 2、负载测试性能场景

    • 负载测试: 逐步增加并发用户数
    • 我们可以下载插件实现这个功能 下载插件步骤
      • 插件管理: jpgc(这里后面记得加个空格,否则搜不到哦) 安装这个插件
      • 添加方式:线程组-jp@gc stepping thread group
        在这里插入图片描述
      • 总共启动100个线程,然后用5秒钟增加10个并发用户数,持续运行30秒。当100个线程全部启动后,持续运行60然后每1s逐步停止5个线程
    • 完全不知道项目的性能瓶颈范围时,我们怎么设置?

      • 答:我们可以从0 - 100,200…逐步加压,这样就可以找到瓶颈啦~
    • 已经找到一个范围了,怎么设置?

      • 答:举个栗子,比如我们已经找到了最大的范围是20-30,那我们可以设置总线程数为30,然后设置每60s增加1个线程,然后设置那个线程的启动时间为1s,持续60s。最后每1s停止5个线程,直到最终停止
        在这里插入图片描述
    • 那么线程组跑完以后,我们要怎么查看呢?

      • 我们可以通过添加监听器的方式进行查看,gc为我们提供了5个监听器
        • jp@gc - Active Threads Over Time:随着时间变化的并发用户数图
        • jp@gc - Flexible File Writer
        • jp@gc - PerfMon Metrics Collector
        • jp@gc - Response Times Over Time:响应时间和随着时间变化的响应时间图
        • jp@gc - Transactions per Second :tps的图

      ps:分析的时候可以多张图一起看

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

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

相关文章

读高性能MySQL(第4版)笔记01_MySQL架构(上)

1. 逻辑架构 1.1. 大多数基于网络的客户端/服务器工具或服务器都有类似的服务 1.1.1. 连接处理 1.1.2. 身份验证 1.1.3. 确保安全性 1.2. 核心层 1.2.1. 查询解析、分析、优化、以及所有的内置函数 1.2.2. 跨存储引擎的功能 1.2.2.1. 存储过程 1.2.2.2. 触发器 1.2.2…

kafka的位移

文章目录 概要消费位移__consumer_offsets主题位移提交 概要 本文主要总结kafka的位移是如何管理的,在broker端如何通过命令行查看到位移信息,并从代码层面总结了位移的提交方式。 消费位移 对于 Kafka 中的分区而言,它的每条消息都有唯一…

Python爬虫(十二)_XPath与lxml类库

Python学习指南 有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素。 什么是XML XML指可扩展标记语言(E…

Spring Boot + Vue3前后端分离实战wiki知识库系统十二--用户管理单点登录开发一...

目标: 在上一次https://www.cnblogs.com/webor2006/p/17533745.html我们已经完成了文档管理的功能模块开发,接下来则开启新模块的学习---用户登录,这块还是有不少知识点值得学习的,先来看一下整体的效果,关于效果官网有…

算法|Day38 动态规划6

完全背包问题,也就是一个物品可以取多次,我们只需要正序遍历背包容量就可以了。因为一维数组是按左边的状态来进行推导,我们正序,那样就会将前一次取的状态带到下一个位置,也就实现了多次取。如果倒序,左边…

麦肯锡发布《2023科技趋势展望报告》,生成式AI、下一代软件开发成为趋势,软件测试如何贴合趋势?

近日,麦肯锡公司发布了《2023科技趋势展望报告》。报告列出了15个趋势,并把他们分为5大类,人工智能革命、构建数字未来、计算和连接的前沿、尖端工程技术和可持续发展。 类别一:人工智能革命 生成式AI 生成型人工智能标志着人工智…

(el-Table)操作(不使用 ts):Element-plus 中Table 表格组件:多选修改成支持单选及表格相关样式的调整

Ⅰ、Element-plus 提供的 Table 表格组件与想要目标情况的对比: 1、Element-plus 提供 Table 组件情况: 其一、Element-ui 自提供的 Table 代码情况为(示例的代码): // Element-plus 自提供的代码: // 此时是使用了 ts 语言环境…

Windows11中使用OneDrive按Print Screen截屏按键,把截图自动保存到OneDrive中

参考:关于Onedrive 我已经勾选了自动保存屏幕截图 但是我截图之后我的图片并没有上传到onedrive上面 - Microsoft Community 1. 打开Windows 11的设置,可以通过按下Win I键来快速打开设置; 2. 设置--辅助功能--键盘--使用”print Screen“键…

Rust 重载运算符|复数结构的“加减乘除”四则运算

复数 基本概念 复数定义 由实数部分和虚数部分所组成的数,形如a+bi 。 其中a、b为实数,i 为“虚数单位”,i -1,即虚数单位的平方等于-1。 a、b分别叫做复数a+bi的实部和虚部。 当b0时,a&…

codeforces代:

感受思维的美丽,abcde题目的思路是怎么样的: 上蓝 上紫 可以代 :有问题可以评论区 直接问我 也可以q: 639682754

【严重】Smartbi未授权设置Token回调地址获取管理员权限

漏洞描述 Smartbi是一款商业智能应用,提供了数据集成、分析、可视化等功能,帮助用户理解和使用他们的数据进行决策。 在 Smartbi 受影响版本中存在Token回调地址漏洞,未授权的攻击者可以通过向目标系统发送POST请求/smartbix/api/monitor/s…

python_PyQt5运行股票研究python方法工具V1.0

写在前面: 1 在写研究方法过程中(例如:股票研究),很多方法根据数据的更新需要重复运行获取新的结果,本工具就是固化这些需要重复运行的代码,可以直接在工具中运行得到更新的结果。 2 本文是V1…

并发编程系列-Semaphore

Semaphore,如今通常被翻译为"信号量",过去也曾被翻译为"信号灯",因为类似于现实生活中的红绿灯,车辆是否能通行取决于是否是绿灯。同样,在编程世界中,线程是否能执行取决于信号量是否允…

DevOps?自动化运维!

by: 雪月三十 DevOps流程图 DevOps介绍 命名 DevOps是Dev和Ops的结合 Dev(developer开发) Ops(operation运维) 矛盾 在企业中dev和ops是有一种天然的矛盾,dev要求的是快速迭代,给公司挖掘出商业的价值…

c++实现多进程执行多个shell脚本

一 参考 system()、exec()、fork()三个与进程有关的函数的比较 - 青儿哥哥 - 博客园 (cnblogs.com)https://www.cnblogs.com/qingergege/p/6601807.htmlfork执行流程分析_fork子进程和父进程执行顺序_cytf的博客-CSDN博客https://blog.csdn.net/qq_27420299/articl

IE实验-Qos教学实验

S1 diffserv domain boss //创建差分服务域 8021p-inbound 0 phb ef green //将外部优先级为0的流量,映射到内部优先级ef interface GigabitEthernet0/0/2 trust upstream boss //在接口下调用查分服务域 trust dscp override qos map-table dscp-dscp acl …

【新品发布】ChatWork企业知识库系统源码

系统简介 基于前后端分离架构以及Vue3、uni-app、ThinkPHP6.x、PostgreSQL、pgvector技术栈开发,包含PC端、H5端。 ChatWork支持问答式和文档式知识库,能够导入txt、doc、docx、pdf、md等多种格式文档。 导入数据完成向量化训练后,用户提问…

小米发布会:雷军成长故事与创新壮举,AI大模型技术引领未来,雷军探索之路之从创业波折到小米AI领航,成就高端化传奇!

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

基于物理场的动态模式分解(piDMD)研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

翻转二叉树

声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 翻转二叉树备战技术面试?…