在线客服
扫描二维码
下载博学谷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:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。
以上就是整理的所有性能测试面试题,都是干货哦!对于性能测试还有疑问的小伙伴,可以上博学谷在线学习,相信大家一定能轻松掌握软件测试的所有知识点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
软件测试面试题之黑盒测试和白盒测试
众所周知,软件测试的测试类型有黑盒测试和白盒测试。而黑盒测试和白盒测试,也是软件测试面试题必考的知识点。本文整理了近年来有关黑盒测试和白盒测试所有经典的面试题,希望对大家有所帮助。
8647
2019-08-19 19:47:31
什么是版本控制?常用的版本控制系统有哪些?
版本控制是一种软体工程技巧,籍以在开发的过程中确保由不同人所编辑的同一档案都得到更新。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为帮助管理 Linux 内核开发而开发的一个开放源 码的版本控制软件。
6821
2020-04-01 15:41:26
HTTP请求方法有哪些?区别是什么?
HTTP 协议中定义了几种不同的请求命令,这些命令叫作 HTTP 方法。每个HTTP请求报文中都包含一个方法,这个方法会告诉服务器要执行什么动作,如是要获取一个Web 页面还是要删除一个文件。HTTP 协议定义了很多与服务器交互的方法,最常见的有5种,分别是GET、HEAD, POST、PUT、 DELETE。下面来看看它们详细介绍和区别。
6956
2020-07-30 11:36:48
女生适合学软件测试吗?有优势吗?
有人说女生心细耐心能够更好的找出bug;有人说测试不用写代码,女生学更容易上手;有人说做测试强度低不用加班,对女生更友好。在以前手工测试盛行的年代,有这样的看法还算正常,但测试行业不断升级变化不加班是不可能的。
3896
2021-01-13 14:26:48
想转行学软件测试担心哪些问题?
担心零基础学不会浪费时间。担心非计算机专业没优势;市场饱和找不到工作;转行测试以后未来没有发展;没有传说中那么高的收入;担心年纪大转行太晚,想知道自己适不适合学测试,学习软件测试的前景如何,这行业对于计算机的要求有哪些我们就来介绍一下。
2651
2021-11-09 17:09:07