软件性能测试常见面试题(软件性能测试常见面试题目)
haoteby 2025-03-25 13:22 30 浏览
常见性能面试题
导语
Jmeter 通过主机来控制各个压力机,并发大量用户,对服务器产生负载,从而实现性能测试。
性能测试怎么做的?
参考答案
性能需求分析,挑选了用户使用最频繁的功能或接口来做性能测试,比如车联网项目:注册接口,检测版本接口,下载接口,升级接口,确定性能指标,比如:响应时间小于 1s,错误率小于等于 0.01%,CPU 和内存的使用率为 70%左右,可稳定运行 26 小时。
提前准备好压力机和服务器,编写性能测试方案,搭建测试环境,准备测试数据。
采用 Jmeter 直接编写脚本或使用 Java 开发性能测试脚本。
设计性能测试场景,如单接口并发,多接口混合并发,稳定性测试等。
分析性能测试结果,如果有性能瓶颈,收集相关的日志给开发修改。
开发修改好后,回归性能测试,然后输出性能测试报告。
如何确定最大并发用户数?
参考答案
在寻找合适的并发用户数上,建议使用性能测试的“梯度模式”,逐渐增加并发用户数,这个时候压力也会越来越大,当 TPS 的增长率小于响应时间的增长率时,这就是性能的拐点,也就是最合理的并发用户数;
当 TPS 不再增长或者下降时,这个时候的压力就是最大的压力,所使用的并发用户数就是最大的并发用户数。如果此时的 TPS 不满足你的要求,那么就需要寻找瓶颈来优化
哪些功能需要做性能测试?
参考答案
选取操作频率非常高的功能。
关键程度非常高的功能,如登录。
资源占用非常严重的功能(如包含复杂逻辑的接口)。
性能测试在做的?
参考答案
一般我们是在测试环境做性能测试,根据性能测试结果,来评估生产环境资源配置情况(生产环境未部署的情况下),如有必要会对预发布环境做性能测试。
一般在哪个节点做性能测试
参考答案
测试环境最后一轮功能测试完成后,测试环境稳定,无重大 bug 的情况下,做性能测试
如何分析性能测试结果?
参考答案
查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和 IO 使用率是否达到要求,如果出错率达到了总请求数的 3%,我们会检查是什么原因导致的,修改好后,重新测试;
如果出现了性能瓶颈,比如响应时间,或者 CPU 使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致响应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。
性能测试怎么判断网络瓶颈?
参考答案
1.确定本次压测链路上网络流量上限值是多少
在压测之前,提前确定本地压测的数据流向,即压测请求从压力机上发出后,经过了哪些环节,最终到达服务器上。响应数据经过哪些环节,又返回到压力机。
并且每个环节中的网络上限是多少,最终我们整个网络环路的流量上限,就取决于环路中最低的那个上限值(木桶原理)。网络请求数据首先是从压力机的网卡发出,一般的网卡都是千兆网卡,然后网络带宽也会有限制,比如是 100Mb,可能还会经过一些网络设备,如路由器、交换机、防火墙等,这些设备也都有网络上限,假如都是 10000Mb,最后到达目标服务器的网卡(千兆网卡)。
整体链路如果最高支持 100Mb 的数据流量,大约是 100/8=12.5MB(1 字节=8 位)。如果在局域网内,几乎就不用考虑带宽和网络设备的问题了,所以局域网内网卡的上限就是整个链路的网络上限。
2.压测过程中,当前网络上的流量大小是多少
一般在目标服务器上,通过一些工具对网络进行监控,如 nmon、dstat、sar、nload 等,可以查看到实时的网络数据。按照上面的分析,假如通过监控 Linux 服务器,发现服务器的网卡流量已经达到 12.5MB 左右,那么就说明当前网络链路上的流量已经达到上限了。当前网络已经出现了瓶颈。
响应时间不达标
参考答案
响应时间不达标的话,我们会根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后,就提单给开发修复,修复好了就进行回归测试。
CPU 使用率不达标
参考答案
首先使用 top 命令,查看 cpu 进程占用情况,如
ps -ef| grep java
查看占用 cpu 过高的 pid 是哪个服务,找到对应的服务后,反馈给开发解决
连接不上服务器
Q:程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。
A:程序没有做多线程处理。
用户任务分配
Q:程序实现的功能是,随机给用户分配不同的任务,单用户运行时,能成功分配;多用户并发申请任务时,所有用户得到的任务都是一样的。
A:原因:程序存在线程同步的问题。
在做性能测试时,服务器返回 http 500
参考答案
运行的用户数过多,对服务器造成的压力过大,服务器无法响应。减小用户数或者场景持续时间,问题得到解决。
该做关联的地方没有去做关联。进行手工或者自动关联,问题得到解决。
录制时请求的页面、图片等,在回放的时候服务器找不到,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
参数化时的取值有问题。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。
更换了应用服务器(中间件的更换,如 tomcat、websphere、jboss 等),还是利用原先录制的脚本去运行,则很可能报 HTTP500 错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。
Windows xp2 与 ISS 组件不兼容,则有可能导致 HTTP500 错误。对 ISS 组件进行调整后问题解决。
系统开发程序写的有问题。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
启动方式。是多线程。还是多进程。一般多线程的容易出现 500 错误。
你们的性能测试需求哪里来的?
参考答案
客户提供性能测试需求。
如果客户未提供,由测试跟开发开会沟通解决。
如何实现 200 用户的并发
参考答案
Jmeter 新建线程组,设置并发用户数为 200。
什么情况下要做关联,关联是怎么做的?
参考答案
当下游接口的请求数据需要依赖上游接口请求返回的数据,就用关联。
有验证码或加密的功能,怎么做性能测试?
参考答案
将验证码或加密暂时屏蔽,完成性能测试后,再恢复。注意:屏蔽验证码是不会给性能测试的结果带来影响的。
使用一个万能的验证码。
你们性能测试做的是前台还是后台?
参考答案
我们做的是后台服务器的性能。
性能测试指标有哪些?
参考答案
平均事务响应时间,90%的事务响应时间,TPS,CPU、内存。
你们项目最佳的并发用户数是多少?
参考答案
我们当时做到 1500 个并发用户的时候,查询功能的响应时间超过了性能指标 2 秒多,原因是有几个表的索引建得不合理导致的,重新建索引后,问题就解决了。我们当时做到 1500 并发用户后,就没再继续增加用户量了。
分布式环境怎么搭建?
参考答案
分布式的环境搭建比较复杂,当时我也是根据自己的笔记来搭建的。
具体的步骤不记得了,大概是要先修改配置文件,将所有需要使用到的压力机的 IP 地址添加进来,然后在压力机只需要开启服务,在主机的电脑就可以控制远程启动了。
怎么监控服务器资源的
参考答案
我们使用的是 Nmon 工具来监控服务器资源的,它能够将 linux 上一段时间的资源以文档的形式保存下来。
Jmeter 做性能测试的工作原理是什么?
参考答案
Jmeter 通过主机来控制各个压力机,并发大量用户,对服务器产生负载,从而实现性能测试。
服务器的配置是怎样的
参考答案
配置:CentOS7,两台服务器,4 核 8G
相关推荐
- Chrome OS 41 用 Freon 取代 X11_chrome os atom
-
在刚发布的ChromeOS41里,除了常规的Wi-Fi稳定性提升(几乎所有系统的changelog里都会包含这一项)、访客模式壁纸等之外,还存在底层改变。这一更新中Google移除...
- 苹果iPad Pro再曝光 有望今年六月发布
-
自进入2015年以后,有关大屏iPad的消息便一直不绝于耳,之前就有不少媒体猜想这款全新的平板电脑将会在三月发布,不过可惜的是我么只在那次发布会上看到了MacBookPro。近日@Ubuntu团队便...
- 雷卯针对香橙派Orange Pi 5 Max开发板防雷防静电方案
-
一、应用场景高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居、Linux桌面计算机、Linux网络服务器、Android平板、Android游戏机...
- Ubuntu Server无法更新问题解决_ubuntu server not found
-
上周老家的一台运行UbuntuServer的盒子无法连接上了,中秋这两天回来打开,顺手更新一下发现更新报错。提示`E:Releasefileforhttps://mirrors.aliyun...
- 虚幻引擎5正式版发布:古墓丽影&巫师新作采用、新一代实时渲染
-
机器之心报道编辑:杜伟、陈萍虚幻引擎5的目标是「助力各种规模的团队在视觉领域和互动领域挑战极限,施展无限潜能」。...
- AMD Milan-X双路霄龙7773X平台基准测试曝光 CPU缓存总量超1.5GB
-
OpenBenchmarking基准测试数据库刚刚曝光了AMDMilan-X双路霄龙7773X平台的跑分成绩,虽然很快就被撤下,但我们还是知晓了高达1.6GB的总CPU缓存。早些时...
- 全网最新的Dify(1.7.2)私有化离线部署教程(ARM架构)
-
Hello,大家好!近期工作中有涉及到Dify私有化离线部署,特别是针对于一些国产设备。因此特别整理了该教程,实测有效!有需要的小伙伴可以参考下!本文主要针对Dify1.7.2最新版本+国产操作系...
- 在ubuntu下新建asp.net core项目_创建ubuntu
-
本文一步步讲述在ubuntu下用visualstudiocode创建asp.netcore项目的过程。step1:环境操作系统:virtualbox下安装的lubuntu。请不要开启“硬件...
-
- 在晶晨A311D2处理器上进行Linux硬件视频编码
-
在KhadasVIM4AmogicA311D2SBC上,我更多的时间是在使用Ubuntu22.04。它的总体性能还不错,只不过缺少3D图形加速和硬件视...
-
2025-08-26 17:22 haoteby
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- 电影质量级渲染来了!虚幻引擎5.3正式发布:已开放下载
-
快科技9月8日消息,日前,Unrealengine正式发布了虚幻引擎5.3,带来了大量全方位的改进。...
- 2025如何选购办公电脑?极摩客mini主机英特尔系列选购指南
-
当下,迷你主机的性能越来越强,品类也越来越多。但是CPU是不变的,基本都是AMD和英特尔的。有一个小伙伴在评论区提问,我应该如何在众多机器中选购一台符合自己的迷你主机呢?那今天我们优先把我们的系列,分...
- ubuntu 20.04+RTX4060 Ti+CUDA 11.7+cudnn
-
ububtu添加国内源sudocp/etc/apt/sources.list/etc/apt/sources.list.backupsudovim/etc/apt/sources.lis...
- Linux Mint 18将重新基于Ubuntu 16.04 带来更好硬件支持
-
项目负责人ClementLefebvre在本月6日披露了关于LinuxMint18“Sarah”操作系统的大量信息,包括带来全新扁平化体验的Mint-Y主题。而现在,这款将于年底之前上线的操作...