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

【性能测试】性能压测3个阶段+高频面试题回答(详细)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、单个接口的压测(基准容量测试)

目的:验证被测试接口的最高TPS(基于一定的响应时间ms),TPS是从服务端角度验证接口性能;

方法:采用梯度压测方法,按照设置的梯度逐步递增压力,观察TPS曲线变化(测试时注意递增的粒度,粒度需要细化到TPS曲线跟随梯度压力曲线呈梯度变化)

最大TPS:

1)当梯度压力增加时,TPS趋于稳定不再增加,继续增加压力接口响应时间不断增加,该TPS即是最大TPS(对于无明显性能拐点的系统适用);

2)当梯度压力增加时,TPS达到最大值,继续增加压力接口TPS会不断降低,响应时间不断增加,TPS曲线的最高点即为该接口最大TPS(对于有明显性能拐点的系统适用);

注意点:tps=1000/接口响应时间(ms);线程组数与接口所支持的并发没有必然联系,接口的最大tps即是所支持的并发

2、多接口串联压测(场景式压测)

目的:验证被测试系统链路在高并发场景下的响应时间(响应时间需要根据业务确定),同时观察服务器的资源占用情况;
根据响应时间来确定当前系统链路所支持的用户并发数量以及对应的请求数;

方法:采用逐渐加压方式加压到预期压力值,持续压测一段时间,观察记录系统链路的整体tps与响应时间,关注每个接口的错误率;

注意点:csv参数化变量数据需要大于设定的并发线程组数;链路中为了模拟真实用户操作,需要加入合理的思考时间(2s,3s);

3、多接口串联负载(场景式负载)

目的:验证被测系统在一定压力下长时间运行的稳定性,主要观察系统响应时间,接口错误率,tps;

方法:

1)施加预期的压力数让系统长时间运行,观察响应时间,tps,以及接口错误率(预期能够长期稳定运行,tps达预期后稳定浮动,响应时间符合业务需求,无接口大面积报错);

2)施加极大压力数让系统长时间运行,观察响应时间,tps,以及接口错误率(预期虽然响应时间变长但能够稳定运行,响应时间变长后,接口报错率在可接受范围内)

4、性能测试面试题整理

面试题1:单台电脑Jmeter最大可以发多大的并发?JMeter分布式环境怎么搭建?

面试考察点:分布式压测

1)单机压测并发量受到多个因素的影响,比如机器配置(如CPU、内存)、网络带宽、JMeter本身的资源限制以及测试脚本的设计,单台电脑使用JMeter进行并发测试最大能够支持的并发量在几百到几千之间不等。我们之前公司就是300多就上不去了,需要使用分布式来执行。

2)JMeter分布式环境怎么搭建?

准备好助攻机和主控机:所有的主控机和助攻机都必须用有线连接网络,同一局域网;并都安装好同一个版本的jdk和Jmeter工具

助攻机配置:
修改Jmeter的配置文件:jmeter.properties,去掉认证 server.rmi.ssl.disable=true 不使用加密认证传输数据;

主控机配置:
修改Jmeter的配置文件:jmeter.properties,去掉认证:server.rmi.ssl.disable=true,remote_hosts=助攻机器ip:端口 ,如果有多个助攻机器信息之间用逗号分开 ;

启动助攻机:./jmeter-server -Djava.rmi.server.hostname=助攻机的IP地址。

面试题2:性能测试有哪些指标?有专门看性能指标的软件吗?

考察点:性能测试结果分析和监控

1)性能测试的指标包括:
业务指标有:并发用户数,响应时间,TPS\QPS\RPS\HPS\吞吐量\吞吐率,错误率;

系统资源指标:CPU、 内存、 磁盘IO、网络IO,线程池、JDBC连接池、JVM内存(GC /FGC/YGC 堆栈)等。

2)有专门看性能指标的软件吗?
我们公司有专门搭建的性能监控平台,比如监控系统资源指标:prometheus + grafana+export,可以看CPU 内存 磁盘 网络等指标;并可以持久化存储;

监控业务指标:influxdb + grafana+Jmeter,可以持久化存储 TPS ERR 并发用户数等业务指标。

面试题3:假如你正在测试一个电商网站的性能,如何确定并设置合适的并发用户数?

考察点:并发测试和负载测试执行

1)如果是已经上线过的老项目,可以根据历史用户数据去评估,比如高峰用户,在线用户数用二八原则去计算等方式确认并发用户数;

2)如果是新项目没有历史数据,进行负载测试【阶梯压测】,根据预期的用户数量和行为,逐渐增加并发用户数,同时监测系统的性能指标,以确定系统能承受的最大并发用户数的上限;标记该并发用户数为合适的并发用户数,后面的性能测试就使用这个并发用户数进行测试。

关注的指标主要有:
在多少并发用户数前出现连续报错
平均响应时间超过预期范围
服务器资源利用率超过80%

面试题4:例如100个用户同时登陆,你如何进行测试的

我使用的是Jmeter工具来编写脚本,使用csv参数化来实现100个用户同时登录:

1)先在本地创建txt文件/或者CSV文件,录入100组用户名和密码(逗号分隔),将用户名和密码参数化

2)Jmeter中创建线程组,设置线程数为100个用户并发,1秒内执行,循环一次

3)创建CSV data set config配置元件,引用本地txt/csv文件

4)创建http请求,填入登录接口参数信息,并讲用户名和密码信息进行csv的参数调用;

5)创建同步定时器,设置100个用户,1秒并发执行。

面试题5:怎么保障Jmeter工具端的性能

1)在执行性能测试时,禁用所有监听器;
2)脚本中,能不写断言的不写;
3)性能脚本尽量简单一些,不写逻辑复杂的脚本;
4)能少用元件就少用;不用beanshell元件,性能不好;
5)尽量不用定时器元件;

面试题6:是否参与过性能分析,都需要看哪些地方?

参与过性能结果分析的,主要关注以下的点:

1)性能的各项指标:
响应时间:是满足要求,我们公司要求是平均响应时间小于1.5s;
吞吐量TPS:是否能随着用户数增加而增加,并达到的值满足项目的需求;

资源使用率:包括CPU、内存、磁盘和网络等资源的使用情况,一般不能超过80%;
可以通过一些Linux分析命令,比如top vmstat等查看

我们公司也有一些监控平台:prometheus + grafana可收集和统计服务器的资源使用情况。

错误率:一般小于0.1%,不能有连续的报错,保证系统的稳定性和健壮性。

2)通过分析这些指标,发现了异常之后,再通过日志、arthas、MAT等这种分析工具具体分析性能问题的原因,如代码问题,数据库问题,网络问题或者中间件的问题等,然后依次去优化。

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

下面是我整理的2025年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最珍贵的不是终点站的奖杯,而是追梦路上那个永不放弃的自己。当你觉得撑不住时,请记住:每个伟大的故事都写在最艰难的章节之后。你的坚持,正在创造别人眼中的奇迹!

别被暂时的风雨模糊了双眼!那些让你流泪的磨练,正在雕刻更璀璨的未来。当别人选择放弃时,你的坚持就是胜利的宣言。向前奔跑吧,整个世界都在等待你的光芒绽放!

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

相关文章:

  • 大语言模型:人像摄影的“达芬奇转世”?——从算法解析到光影重塑的智能摄影革命
  • 机器学习基础:从数据到智能的入门指南
  • 【数据集】NOAA 全球监测实验室(GML)海洋边界层(MBL)参考简介
  • 渗透笔记(XSS跨站脚本攻击)
  • 【算法300】:栈02
  • Day25| 491.递增子序列、46.全排列、47.全排列 II、回溯总结
  • JAVA面试宝典 -《API设计:RESTful 与 GraphQL 对比实践》
  • Error: You don‘t have permission to access that port.当端口被莫名占用时,kill它!
  • G1回收器垃圾回收过程
  • 30天打牢数模基础-卷积神经网络讲解
  • 将来职业从事股票市场投资工作,应该做什么?
  • Python趣味算法:借书方案知多少 | 排列组合穷举法详解
  • DeepSeek+LoRA微调大模型实战
  • 【机器学习深度学习】魔塔社区模型后缀全解析:Base、Chat、Instruct、Bit、Distill背后的技术密码
  • 【Java多线程-----复习】
  • InfluxDB 核心概念与发展历程全景解读(二)
  • AtCoder Beginner Contest 415
  • 数控调压BUCK电路 —— 基于TPS56637(TI)
  • 乐观锁实现原理笔记
  • Android activity与service通信的三种方法
  • 30天打牢数模基础-K均值聚类
  • (DINO)Emerging Properties in Self-Supervised Vision Transformers论文精读(逐段解析)
  • (苍穹外卖)暑假学习理解P2
  • 从零搭建智能搜索代理:LangGraph + 实时搜索 + PDF导出完整项目实战
  • [C/C++安全编程]_[中级]_[如何安全使用循环语句]
  • k8s:离线部署存在的相关问题
  • 近期工作感想:职业规划篇
  • 【单片机外部中断实验修改动态数码管0-99】2022-5-22
  • Linux文件系统三要素:块划分、分区管理与inode结构解析
  • 本地部署开源离线内容浏览器 Kiwix 并实现外部访问( Windows 版本)