高频性能测试面试题15道

熟悉应用:了解应用的架构、功能逻辑;

需求分析:根据测试目的,细化需求;

测试方案:明确性能测试指标,性能场景及工具选择;

测试准备:客户端准备、测试数据准备、测试脚本准备;

执行测试:执行测试,监控测试客户端和服务器性能,监控服务器端应用情况;

  • 客户端的系统资源(CPU、IO、Memory)情况; 
  • 服务端的系统资源(CPU、IO、Memory)情况; 
  • 服务器的JVM运行情况; 
  • 服务端的应用情况是否有异常; 
  • 响应时间、吞吐量等指标;

性能分析与调优:找出性能瓶颈,提高系统整体性能,满足用户需求;

编写测试报告:测试结束后,归档整理测试报告;

6、需求分析阶段,你从哪几个方面入手性能测试?

  • 明确到底要不要做性能测试,性能测试的目的是什么;
  • 明确被测系统的架构、软硬件配置、网络等;
  • 明确被测系统的基本业务、关键业务、用户行为;
  • 明确被测系统未来的业务拓展规划以及性能需求;
  • 明确工具选型,比如Jmeter、LoadRunner等;
  • 明确性能测试的指标,比如并发、吞吐量、响应时间等;

7、你如何识别性能瓶颈?

硬件上的性能瓶颈:如CPU、内存、磁盘读写等的瓶颈,为服务器硬件瓶颈;

应用软件上的性能瓶颈:如服务器操作系统瓶颈(参数配置)、数据库瓶颈(参数配置)、web服务器瓶颈(参数配置)、中间件瓶颈(参数配置)等;

应用程序上的性能瓶颈:应用程序上的性能瓶颈,如SQL语句、数据库设计、业务逻辑、算法等等;

操作系统上的性能瓶颈:一般指的是Windows、linux等操作系统,如出现物理内存不足时,或虚拟内存设置不合理(虚拟内存设置不合理,会导致虚拟内存的交换率大大降低,从而导致行为的响应时间大大增加,可以认为在操作系统上出现了性能瓶颈);

网络设备上的性能瓶颈:一般是防火墙、动态负载均衡器、交换机等设备导致;

8、打开浏览器输入网址到页面渲染,响应时间通常可以细分为哪些?

  • 从客户端到服务端的请求时间(请求网络传输时间Request); 
  • 从服务端返回数据到客户端的时间(响应网络传输时间Response); 
  • 页面渲染时间(客户端浏览器加载页面的时间); 
  • 处理器的处理时间(应用服务器+数据库服务器处理时间);

9、软件为什么会有性能问题?

软件是运行在环境当中的,在高负载访问下,业务逻辑比较复杂,不同的软硬件资源都会引起性能问题,还有软件本身的代码、数据库等会引起性能问题。

10、什么是内存泄露?

内存泄漏 是指对象不再被应用程序使用,但是垃圾回收器却不能回收它们,因为它们正在被引用。对于长时间运行的程序来说,内存泄漏会使程序占用的内存一直增加,最后就会出现内存耗尽而导致宕机,即使不宕机也会是系统的运行越来越慢,还有就是内存有其他资源,比如数据库连接,网络连接等等。

11、什么是内存溢出?

内存溢出 应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。

12、敏捷开发模型,如何开展性能测试?

①每个迭代目标中包含明确的性能目标; 

②建立不同层次的性能测试; 

③完全或接近完全自动化的性能测试; 

④使用测试驱动方法保证性能与优化性能;

13、性能测试什么时间做?

系统性能测试在功能测试之后,系统比较稳定的时候开展。不同阶段都可能做性能测试,如单接口性能测试,集成性能测试。

14、有验证码的功能,怎么做性能测试?

方案1、将验证码暂时屏蔽,完成性能测试后,再恢复。

方案2、使用万能验证码。

15、常见性能测试工具?

Loadrunner、JMeter、SoapUI、Tsung等,根据不同的测试场景选择适合的工具。

16、如何识别性能瓶颈?         

  • 查看系统日志,如果日志记录的全面,很容易通过日志发现问题。比如,系统宕机时,系统日志打印了某方法执行是抛出out of memory的错误,很快定位到导致内存溢出的问题在哪里。        
  • 利用性能监控工具,比如:linux系统环境下通过nmon来监控系统性能。        
  • 设计合理的性能测试场景,好的测试场景能更加快速的发现瓶颈。
上一页12下一页


留言