三、性能测试场景设计

性能测试场景设计

    • 一、引言:如果公司要求你去做性能测试,遇到这些场景,我们要如何设计?
    • 二、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.hqwc.cn/news/67261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 oneAPI 实现 AI 欺诈检测:一款智能图像识别工具

简介 虚假图像和视频日益成为社交媒体、新闻报道以及在线内容中的一大隐患。在这个信息爆炸的时代,如何准确地识别和应对这些虚假内容已经成为一个迫切的问题。为了帮助用户更好地辨别虚假内容,我开发了一款基于 oneAPI、TensorFlow 和 Neural Compress…

生活中那些六 “有” 的人

1、有承诺 一些事情开始的时候总会有些协议与约定,我们称其为承诺;我们必须遵守承诺,即使是约会也要遵守,也不能迟到;迟到这件事不但会妨碍我们所有人,还意味着迟到者不尊重大家的时间。这种约定从某种意义…

python3装饰器理解与实战

前言 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任务代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装…

CVPR 2023 | 用户可控的条件图像到视频生成方法(基于Diffusion)

注1:本文系“计算机视觉/三维重建论文速递”系列之一,致力于简洁清晰完整地介绍、解读计算机视觉,特别是三维重建领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; CVPR, ICCV, ECCV, NeurIPS, ICLR, ICML, TPAMI, IJCV 等)。 本次介绍的论…

NGINX源码安装

文章目录 NGINX源码安装安装依赖包获取源码NGINX官方网站各个目录的用途 编译安装安装结束后的文件设置为服务 NGINX源码安装 安装依赖包 root执行 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel这些包是用于开发和构建软件…

R语言生存分析算法的简单组合

library(survival) library(randomForestSRC)# 生成模拟数据 set.seed(123) n <- 200 time <- rexp(n, rate 0.1) status <- rbinom(n, size 1, prob 0.7) var1 <- rnorm(n) var2 <- rnorm(n) var3 <- rnorm(n) data1 <- data.frame(time time, statu…

C语言案例 分数列求和-11

题目&#xff1a;有一分数列&#xff1a;2 / 1,3 / 2,5 / 3,8 / 5,13 / 8,21 / 13 …求出这个数列的前20项之和。 程序分析 这是一个典型的分数列数学逻辑题&#xff0c;考究这类题目是需要从已知的条件中找到它们的分布规律 我们把前6荐的分子与分母分别排列出来&#xff0c;…

ClickHouse(十八):Clickhouse Integration系列表引擎

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

谷粒商城第十一天-品牌管理中关联分类

目录 一、总述 二、前端部分 1. 调整查询调用 2. 关联分类 三、后端部分 四、总结 一、总述 之前是在商品的分类管理中直接使用的若依的逆向代码 有下面的几个问题&#xff1a; 1. 表格上面的参数填写之后&#xff0c;都是按照完全匹配进行搜索&#xff0c;没有模糊匹配…

Datawhale Django后端开发入门Task01 Vscode配置环境

首先呢放一张运行成功的截图纪念一下&#xff0c;感谢众多小伙伴的帮助呀&#xff0c;之前没有配置这方面的经验 &#xff0c;但还是一步一步配置成功了&#xff0c;所以在此以一个纯小白的经验分享如何配置成功。 1.选择要建立项目的文件夹&#xff0c;打开文件找到目标文件夹…

菜单和内容滚动的联动原理及代码

之前写代码有个需求&#xff1a;左侧是一个菜单&#xff0c;右边是内容&#xff0c;点击左侧菜单右边内容滚动到对应位置&#xff0c;右边内容滚动到某位置时&#xff0c;左侧菜单也会选中对应的菜单项。UI如下&#xff1a;这是大多网站的移动端都会有的需求。 解决方案一&…

三分钟完美解决你的C盘内存过大爆红

一、清理回收站 二、清理桌面 建议一 不要在桌面放太多图标或者文件会占用过多的内存,可以放到其他盘建议二、 将位置移动到别的盘 三、手动删除下载文件与缓存文件 日常使用中会通过Windows下载各种文件资料到电脑中&#xff0c;它默认也是直接下载在C盘中的。如果我们在以…