在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
性能测试一直都是软件测试面试题的必考重点,常常会有同学对这方面的知识点混淆不清。因此本文整理了近些年比较典型的此类的问题,希望可以帮助大家梳理一遍,查漏补缺。
一、常见性能测试的方法有哪些?举例解释一下?
1、负载测试
在这里,负载测试指的是最常见的验证一般性能需求而进行的性能测试,在上面我们提到了用户最常见的性能需求就是“既要马儿跑,又要马儿少吃草”。因此负载测试主要 是考察软件系统在既定负载下的性能表现。 我们对负载测试可以有如下理解:
(1)负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现。
(2)负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。
2、压力测试
压力测试是为了考察系统在**条件下的表现,**条件可以是超负荷的交易量和并发用户数。注意,这个**条件并不一定是用户的性能需求,可能要远远高于用户的性能需求。 可以这样理解,压力测试和负载测试不 同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。比如说,我们期 待一个系统在面临压力的情况下能够保持稳定,处理速度可以变慢,但不能系统崩溃。因此,压力测试是能 让我们识别系统的弱点和在极限负载下程序将如何运行。例子:负载测试关心的是用户规则和需求,压力测试关心的是软件系 统本身。
3.并发测试
验证系统的并发处理能力。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端 的性能监测情况来判断系统是否达到了既定的并发能力指标。负载测试往往就会使用并发来创造负载,之所以把并发测试单独提出来,是因为并发测试往往涉及服务器的并发容量,以及多进程/多线程协调同步可能带来的问题。这是要特别注意,必须测试的。
4.基准测试
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新 模块对整个软件系统的性能影响。 按照基准测试的方法,需要打开/ 关闭新模块至少各做一次测试。关闭模块之前的系统各个性能指标记 下来作 为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响。
5.稳定性测试
“路遥知马力”,在这里我们要说的是和性能测试有关的稳定性测试,即测试系统在一定负载下运行长时间后是否会发生问题。软件系统的有些问题是不能一下子就暴露出来的,或者说是需要时间积累才能达到能够 度量的程度。为什么会需要这样的测试呢?因为有些软件的问题只有在运行一天或一个星期甚至更长的时间 才会暴露。这种问题一般是程序占用资源却不能及时释放而引起的。比如,内存泄漏问题就是经过一段时间 积累才会慢慢变得显著,在运行初期却很难检测出来;还有客户端和服务器在 负载运行一段时间后,建立了 大量的连接通路,却不能有效地复用或及时释放。
6.可恢复测试
测试系统能否快速地从错误状态中恢复到正常状态。比如,在一个配有负载均衡的系统中,主机承受了压力无法正常工作后,备份机是否能够快速地接管负载。可恢复测试 通常结合压力测试一起来做。
二、你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结 合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。
三、服务端性能分析都从哪些角度来进行?
从维度上划分,性能指标主要分为两大类,分别是业务性能指标和系 统资源性能指标。 业务性能指标可以直观地反映被测系统的实际性能状况,常用的指标项有:
1.并发用户数
2.事务吞吐率(TPS/RPS)
3.事务平均响应时间
4.事务成功率 系统资源性能指标,主要是反映整个系统环境的硬件资源使用情况,常用的指标包括:
服务器:CPU 利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘 IO 状态、网卡带宽使用 情况等;
数据库:数据库连接数、数据库读写响应时长、数据库读写吞吐量 等;
网络:网络吞吐量、网络带宽、网络缓冲池大小;
缓存(Redis):静态资源缓存命中率、动态数据缓存命中率、缓存吞吐量等;
.测试设备(压力发生器):CPU 利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘 IO 状 态、网卡带宽使用情况等。
四、如何理解压力测试,负载测试以及性能测试?
性能测试(Performance Test):通常收集所有和测试有关的所有性能, 被不同人在不同场合下进行使用。 压力测试 stress test:是在一定的『负荷条件』下,长时间连续运行系统给系统性能造成的影响。 负载测试 Load test:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。
以上就是整理的所有性能测试面试题,都是干货哦!对于性能测试还有疑问的小伙伴,可以上博学谷在线学习,相信大家一定能轻松掌握软件测试的所有知识点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
博学谷软件测试常见问题汇总
博学谷软件测试常见问题汇总:编写测试计划的目的、测试人员在软件开发过程中的任务、一条软件缺陷(或者叫Bug)记录都包含了哪些内容、黑盒测试和白盒测试的优缺点、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程、软件测试种类、Alpha测试与Beta测试的区别、什么是Bug。
7719
2019-07-12 15:21:20
2019软件测试工程师面试题汇总及答案
软件测试工程师在面试前想要做好充足的准备,可以刷一遍本文分享的面试题。这些汇总的面试题都是2019年最新整理出炉的,并附上了参考答案,其中包含了测试理论、Linux基础、数据库基础、API测试、App测试、管理工具等方面的知识点。可以说是,既有软件测试的基础知识,又有软件测试的所有知识重难点内容。有面试需求的小伙伴赶紧做一遍下面的面试吧!
12900
2019-09-29 10:25:27
软件测试缺陷包含哪些状态?缺陷生命周期分析
在软件测试中,缺陷生命周期常常是绕不开的话题。本文就来详细为大家讲讲,软件测试缺陷的八种状态,缺陷的等级、缺陷单应该包含的内容等等。对软件测试的基础理论知识感兴趣的小伙伴,现在就赶紧看下去吧!
15976
2019-10-22 14:45:34
软件测试新手入门必看手册
随着软件开发行业的日益成熟,软件测试岗位的需求也越来越大。众所周知,IT技术行业一直以来都是高薪岗位的代名词,零基础想要转业的朋友想要进入这个行业,入门软件测试是最佳的途径之一。考虑到大多数软件测试小白对这个行业的一片空白,本文为大家总结了软件测试新手入门必看手册,内容包括了软件测试的概念、意义以及详细的分类,下面一起来看看吧!
5040
2020-03-19 12:55:23
HTTP请求方法有哪些?区别是什么?
HTTP 协议中定义了几种不同的请求命令,这些命令叫作 HTTP 方法。每个HTTP请求报文中都包含一个方法,这个方法会告诉服务器要执行什么动作,如是要获取一个Web 页面还是要删除一个文件。HTTP 协议定义了很多与服务器交互的方法,最常见的有5种,分别是GET、HEAD, POST、PUT、 DELETE。下面来看看它们详细介绍和区别。
7378
2020-07-30 11:36:48
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
