性能测试面试问题,一周拿3个offer不嫌多

性能测试的三个核心原理是什么?

1.基于协议。性能测试的对象是网络分布式架构的软件,而网络分布式架构的核心是网络协议
2.多线程。人的大脑是单线程的,电脑的cpu是多线程的。性能测试就是利用多线程的技术模拟多用户去负载
3.模拟真实场景。用户的访问时间,访问频率都不是固定的。

性能测试的核心关注点是什么?

1.用户关注。响应时间,稳定性、可恢复性
2.运维关注。服务器/数据库资源使用,服务器端处理速度,系统能否支撑7*24小时
3.测试关注。最大访问用户数量,最大业务处理数量,内存资源能否正常回收
4.开发关注。代码:算法、sql语句

jmeter性能测试:2023最新的大厂jmeter性能测试全过程项目实战详解,悄悄收藏,后面就看不到了_哔哩哔哩_bilibiliicon-default.png?t=N6B9https://www.bilibili.com/video/BV1Vu411L77o/?spm_id_from=333.999.0.0

 

 

简述性能测试流程

1.分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下
2.制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具
3.编写测试用例
4.搭建测试环境,准备好测试数据
5.编写性能测试脚本
6.性能测试脚本调优。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本
7.设计测试场景,运行测试脚本,监控数据
8.分析测试结果,收集相关的日志提单给开发
9.性能测试回归
10.编写测试报告

如何确定系统最大负载?

通过负载测试,不断增加并发,随着并发数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。Jmeter中可以用rps定时器或者阶梯加压线程组。

你们系统哪些地方(哪些功能)做了性能测试?

选用了用户使用最频繁的功能来做测试,比如:登陆,搜索,提交订单

你们的并发用户数是怎么确定的?

1)会先上线一段时间,根据收集到的用户访问数据进行预估
2)根据需求来确定,使用高峰时间段,注册用户数,单次响应时间等

你们性能测试在什么环境执行?

搭建一套独立的性能测试环境进行测试

你们性能测试什么时间执行?

基准测试:功能测试之后,系统比较稳定的时候再做。
负载测试:夜深人静,系统没人用的时候

怎么分析性能测试结果?

首先查看事物通过率,然后分析其他性能指标,比如,确认响应时间,事务通过率,CPU等指标是否满足需求;如果测试结果不可信,要分析异常的原因,修改后重新测试

think_time的作用是什么?

在业务基准测试中模拟用户的思考时间

在确定性能测试结果可信后,如果发现以下问题,按下面提供的思路来定位问题

问题一:响应时间不达标
查看事务所消耗的时间主要在网络传输还是服务器,如果是网络,就结合Throughput(网络吞吐量)图,计算带宽是否存在瓶颈,如果存在瓶颈,就要考虑增加带宽,或对数据的传输进行压缩处理;如果不存在瓶颈,那么,可能是网路不稳定导致。如果主要时间是消耗在服务器上,就要分别查看web服务器和数据库服务器的CPU,内存的使用率是否过高,因为过高的CPU,内存必定会造成响应时间过长,如果是web服务器的问题,就把web服务器对应上对应的用户操作日志取下来,发给开发定位;如果是数据库的问题,就把数据库服务器对应上对应的日志取下来,发给开发定位。

问题二:服务器CPU指标异常
1:关注cpu利用率和负载情况,如果利用率过低负载过高,那么可能是进程队列过多,造成了阻塞
2:关注上下文切换,如果主动切换过多,那么可能是内存/IO瓶颈;如果被动切换过多,那么可能时间片不够,可以考虑调整进程优先级来增加时间片

问题三:内存溢出,进程消失

1:观察堆内存的年轻代与老年代空间分配是否合理,调整内存参数
2:swap空间是否不足,触发了oomkiller

问题四:程序在多用户运行时严重超时,甚至提示连不上服务器。

程序可能是单线程处理机制,后续的线程全部在排队等待

问题五:如何识别系统瓶颈?

1:随着负载的增加,吞吐量是否能持续稳定的上升,找到吞吐量下滑的那个点
2:随着负载的增加,响应时间是否开始变长,找到响应时间突然变长的那个点
3:随着负载的增加,是否开始出现错误

常见的施压模型有哪几种?

1、并发模式(虚拟用户模式)
并发是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发,也就是jmeter工具里面的线程数
2、RPS 模式(吞吐量模式)
RPS(Requests Per Second)是指每秒请求数。RPS 模式即“吞吐量模式”,通过设置每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力。

 jmeter性能测试:2023最新的大厂jmeter性能测试全过程项目实战详解,悄悄收藏,后面就看不到了_哔哩哔哩_bilibiliicon-default.png?t=N6B9https://www.bilibili.com/video/BV1Vu411L77o/?spm_id_from=333.999.0.0

 

性能测试的应用领域有哪些?

能力验证:通过实际的测试结果证明自己系统的预期能力
瓶颈分析:通过一系列的测试手段发现系统的性能瓶颈(并发,负载,压力,失效恢复)
性能调优:通过一系列的技术手段优化系统性能,包括响应时间,吞吐量,资源利用率
容量规划:为了符合未来的规划预期(用户数,市场占有率),对资源做相应的调整

jmeter如何设计性能测试场景?

并发测试:基础线程组(强调单位时间的并发,不存在绝对并发)
基准测试:反复对比结果,验证调优结果是否通过(tps是否提升,响应时间是否下降)
负载测试:持续不断地增加负载,发现性能瓶颈(阶梯加压线程组,Concurrency Thread Group)
并发用户模式的负载:不断增加并发用户数,发现瓶颈
吞吐量模式的负载:不断增加每秒请求数(rps)对服务端施压,发现tps瓶颈
压力测试:tps瓶颈点上持续负载
       稳定性压力测试:tps保持高压稳定。一般取最大tps的80%持续运行
       破坏性压力测试:目的是只需要服务端出现异常
失效恢复测试:出现异常之后,系统可以很快的恢复
容量规划测试:50万,高峰时间段2小时

tps无法上升原因有哪些?

1.网络带宽
在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,就会造成网络资源竞争,导致服务端接收到的请求数达不到服务端的处理能力上限。

2.连接池
可用连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。

3.GC
如果堆内存分配的不合理,就会导致频繁的gc,gc会导致线程暂停。尤其是fullgc,会造成线程长时间暂停

4.数据库配置
高并发情况下,如果请求数据需要写入数据库且需要写入多个表的时候,数据库的最大连接数不够,或者写入数据的SQL没有索引,或没有主从分离、读写分离,就会导致数据库事务处理过慢,影响到TPS。

6.硬件资源
包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)

7.压力机
单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,会影响TPS(这个时候就需要进行分布式压测来解决问题)

 jmeter性能测试:2023最新的大厂jmeter性能测试全过程项目实战详解,悄悄收藏,后面就看不到了_哔哩哔哩_bilibiliicon-default.png?t=N6B9https://www.bilibili.com/video/BV1Vu411L77o/?spm_id_from=333.999.0.0

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

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

相关文章

C++笔记之rolling counter(滚动计数器)

C笔记之rolling counter(滚动计数器) 一个 rolling counter(滚动计数器)是一个计数器,可以在给定的范围内不断增加,当达到最大值时会从最小值重新开始。 code review! 文章目录 C笔记之rolling counter&…

从零到富:探索CSGO搬砖项目的无限可能

在如今互联网时代,有一项令人惊叹的项目正悄然兴起,它就是CSGO搬砖项目。作为一个从零开始的家伙,我亲身经历了这个项目的神奇魅力,每天轻松赚取几十上百的收益,无风险,低成本。今天,我将带领大…

HarmonyOS开发第一步,熟知开发工具DevEco Studio

俗话说的好,工欲善其事,必先利其器,走进HarmonyOS第一步,开发工具必须先行,当然了,关于开发工具的使用,官网和其他的博客也有很多的讲解,但是并没有按照常用的功能进行概述&#xff…

使用ChatGPT给Python代码写单元测试

先写一个简单的python函数,找chatgpt写单元测试: 有一个python函数,请帮忙写单元测试,函数长这样: def test2(a: list, b: list) -> float:"""计算两个坐标的距离:param a list 格式如&#xff1a…

iview时间控件 动态不可选日期 可选择24小时范围内 时间往后退24小时

演示 html 设定 起始时间 触发on-change 方法结束时间 options 动态设置不可选择的日期。 <!-- 起始时间 --> <FormItem :label"$t(startTime)" prop"startTime"><DatePickertransfertype"datetime":placeholder"$t(pleas…

Mac操作系统上设置和配置PPPoE连接

嗨&#xff0c;在使用Mac的小伙伴么&#xff01;你是否在Mac操作系统上尝试设置和配置PPPoE连接&#xff0c;却不知道怎么设置&#xff1f;别担心&#xff0c;今天我将为你一步步教你如何在Mac上进行设置和配置。无论你是新手还是有经验的用户&#xff0c;本文都将帮助你轻松完…

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现GA-…

(2023)Linux安装pytorch并使用pycharm远程编译运行

&#xff08;2023&#xff09;Linux安装pytorch并使用pycharm远程编译运行 安装miniconda 这部分参考我这篇博客的前半部分Linux服务器上通过miniconda安装R&#xff08;2022&#xff09;_miniconda 安装r_Dream of Grass的博客-CSDN博客 创建环境 创建一个叫pytorch的环境…

kafka复习:(11)auto.offset.reset的默认值

在ConsumerConfig这个类中定义了这个属性的默认值&#xff0c;如下图 也就是默认值为latest,它的含义是&#xff1a;如果没有客户端提交过offset的话&#xff0c;当新的客户端消费时&#xff0c;把最新的offset设置为当前消费的offset. 默认是自动提交位移的&#xff0c;每5秒…

Android View动画整理

View 动画相关内容可参考官网 动画资源 此前也有写 View 动画相关的内容&#xff0c;但都只是记录代码&#xff0c;没有特别分析。以此篇作为汇总、整理、分析。 Android View 动画有4中&#xff0c;分别是 平移动画 TranslateAnimation缩放动画 ScaleAnimation旋转动画 Rot…

JZ36 二叉搜索树与双向链表

题目来源&#xff1a;牛客网 题目描述&#xff1a; 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示 注意: 1.要求不能创建任何新的结点&#xff0c;只能调整树中结点指针的指向。当转化完成以后&#xff0c;树中节点的左指针需要指向前驱…

【LLM】解析pdf文档生成摘要

文章目录 一、整体思路二、代码三、小结Reference 一、整体思路 非常简单的一个v1版本 利用langchain和pdfminer切分pdf文档为k块&#xff0c;设置overlap等参数先利用prompt1对每个chunk文本块进行摘要生成&#xff0c;然后利用prompt2对多个摘要进行连贯组合/增删模型可以使…

【算法训练-链表】合并两个有序链表、合并K个有序链表

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;首先&#xff0c;链表对应的数据结构在这篇Blog中&#xff1a;【基本数据结构 一】线性数据结构&#xff1a;链表&#xff0c;基于对基础知识的理解来进行题目解答。…

Vue2向Vue3过度Vuex状态管理工具快速入门

目录 1 Vuex概述1.是什么2.使用场景3.优势4.注意&#xff1a; 2 需求: 多组件共享数据1.创建项目2.创建三个组件, 目录如下3.源代码如下 3 vuex 的使用 - 创建仓库1.安装 vuex2.新建 store/index.js 专门存放 vuex3.创建仓库 store/index.js4 在 main.js 中导入挂载到 Vue 实例…

0821|C++day1 初步认识C++

一、思维导图 二、知识点回顾 【1】QT软件的使用 1&#xff09;创建文件 创建文件时&#xff0c;文件的路径一定是全英文 2&#xff09;修改编码 工具--->选项--->行为--->默认编码&#xff1a;system 【2】C和C的区别 C又叫C plus plus&#xff0c;C是对C的扩充&…

交通科技与管理杂志社交通科技与管理编辑部2023年第9期目录

专家论坛 黑龙江省经济高质量发展与生态环境保护耦合协调发展研究 刘降斌;祃玉帅; 1-5142 我国省际数字经济高质量发展水平综合评价研究 耿娟;毕晨曦; 6-8 振兴龙江《交通科技与管理》投稿邮箱&#xff1a;cn7kantougao163.com(注明投稿“《交通科技与管理》”) 数…

基于单片机的智能数字电子秤proteus仿真设计

一、系统方案 1、当电子称开机时&#xff0c;单片机会进入一系列初始化&#xff0c;进入1602显示模式设定&#xff0c;如开关显示、光标有无设置、光标闪烁设置&#xff0c;定时器初始化&#xff0c;进入定时器模式&#xff0c;如初始值赋值。之后液晶会显示Welcome To Use Ele…

性能优化维度

CPU 首先检查 cpu&#xff0c;cpu 使用率要提升而不是降低。其次CPU 空闲并不一定是没事做&#xff0c;也有可能是锁或者外部资源瓶颈。常用top、vmstat命令查看信息。 vmstat 命令: top: 命令 IO iostat 命令&#xff1a; Memory free 命令&#xff1a; 温馨提示&#xff1a…

【悬挂绝缘子的串效模型】测量每个绝缘子盘之间的电压并测量串效研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

无可用的防病毒提供方你的设备

今天安装软件时关闭了一下windows的Defender&#xff0c;然后安装后出现下面问题 莫名奇妙我的病毒防护就不能用了 后来请教了老师才知道是安装的软件把我系统设置改了&#xff0c;以后使用一键安装软件要谨慎 解决措施&#xff1a; CMD命令&#xff0c;输入“regedit”&#…