在线客服
扫描二维码
下载博学谷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:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。
以上就是整理的所有性能测试面试题,都是干货哦!对于性能测试还有疑问的小伙伴,可以上博学谷在线学习,相信大家一定能轻松掌握软件测试的所有知识点。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
数据库基础的试题汇总 下
众所周知,在软件测试中,数据库是必备知识,也基础中的基础。今天小编继续整理了关于数据库基础的试题汇总,希望和大家一起分享,现在赶紧来看看吧!
6716
2019-07-08 19:20:26
博学谷软件测试常见问题汇总
博学谷软件测试常见问题汇总:编写测试计划的目的、测试人员在软件开发过程中的任务、一条软件缺陷(或者叫Bug)记录都包含了哪些内容、黑盒测试和白盒测试的优缺点、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程、软件测试种类、Alpha测试与Beta测试的区别、什么是Bug。
7663
2019-07-12 15:21:20
http接口性能测试流程 案例步骤分析
本文将告诉大家在编写一个http接口性能测试方案时,测试过程的关注点有哪些流程?其实大概可以分为五个步骤,即准备工作、测试计划、测试脚本设计与开发、测试执行与管理和测试分析。
7216
2019-08-13 19:35:06
简述MySQL数据库的特性和优势
众所周知,MySQL数据库速度快、可靠性强,而且极具适应性。因此可以说,MySQL是管理内容的最好选择,尤其是对于在不需要事务化处理的情况下。本文就和大家一起来认识一下MySQL数据库,了解它的特性和优势。
7887
2019-10-11 10:22:12
adb命令实战详解
今天我们要来学习一下关于adb命令实战的内容,包括获取系统版本、滑动操作、点击操作等等步骤都会有详解,大家一起来看看吧!
4680
2020-07-23 10:54:33