51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1686|回复: 2
打印 上一主题 下一主题

测试大佬私藏的性能测试岗位常见面试题,拿走拿走别客气!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-1 15:10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我从事软件测试及质量保障领域至今,已经有十几个年头了,从白盒自动化测试到黑盒自动化测试,从功能测试到性能测试、安全测试,从测试流程、测试框架到后来的测试管理、质量体系建设,深爱着这个行业,经常为能和小伙伴们攻克了一个技术小山头而激动兴奋, 也为了加班加点使命必达的完成了一个艰巨任务而感到欣慰。


 我负责测试技术管理、团队管理也已经有8年多了,期间面试过的人少说也有一两千了。下面我就从面试中常见的问题来聊一聊性能测试的基本功:
  一、基础篇
  1、较为完整的性能测试的流程

      2、性能测试的基础理论、常见术语
  3、性能测试模型、类型
  4、HTTP、TCP协议相关知识
  5、连接池、线程相关知识
  二、工具篇
  1、Jmeter
  ①、Jmeter的工作原理是什么?
  ②、常用的元件、插件有哪些?各自的作用是什么?
  ③、几个典型的场景,如何基于jmeter设计测试脚本?
  比如:参数化、关联、控制TPS、接口加密验签、阶梯式加压、集合点、检查点等;
  ④、是否会二次开发?如果会,怎么二次开发的(介绍大概过程和原因)?
  2、Loadrunner
  3、其他开源/商业性能测试工具
  比如:Ngrinder、Locust、Wrk、Artillery等;
  4、前端、服务器、数据库性能监测工具
  三、系统架构篇
  1、服务集群
  2、负载均衡
  负载均衡原理、实现方式
  3、容量规划
  4、缓存应用
  缓存原理、缓存优点、缓存命中、缓存穿透、多层缓存
  5、分布式框架
  分布式的特点、面临的挑战:CAP理论(数据一致性、服务可用性、分区容错性)
  6、全链路压测
  关于全链路压测
  四、服务器&中间件篇
  1、JVM
  JVM原理、启动参数配置、堆栈原理、垃圾回收原理、OOM原因和表现
  2、Tomcat
  配置、使用方法、启动参数配置
  3、Nginx
  配置、使用方法
  4、Dubbo
  服务注册、消息队列
  5、RabbitMQ/Kafka
  本身的特点、生产者、消费者如何管理
  五、数据库篇
  1、锁
  2、索引
  3、读写分离
  4、分库分表
  六、方案篇
  1、设计性能测试方案需要考虑哪些问题?
  时间成本、人力成本、环境&脚本可复用性、实现难度
  2、针对某些情况,你会如何设计、优化方案?
  七、案例篇
  1、如何测试MQ?
  2、压测中TPS上不去的原因分析?
  3、测试环境和生产环境服务器配比如何选择?
  服务器配置版本保持一致,容量测试后等量代换、考虑边际递减效应、容灾方案
  4、发现瓶颈,如何分析?
  自上而下,从局部到整体,瓶颈分析粒度
  5、如何准备测试数据?如何防止数据污染?
  生产数据备份、数据隔离、测试数据落入影子库、挡板、mock
  6、性能优化的常见方法
  关于性能优化之空间时间可靠性思考
  八、常见4类问题汇总
  问题一、接口测试要在什么环境下测试?
  测试设备允许的情况下,尽量把测试的应用部署到测试服务器上面。并且按照生产环境的部署方式来搭建测试环境。
  如果在生产环境通过接口交互的应用在不同服务器,测试环境也要把应用在不同服务器。生产环境使用了vpn,测试环境的服务器最好也是在vpn环境下。
  问题二、压力测试工具能否安装在被测的WEB服务器上进行本地的压力测试?
  一般要求是发压和被压机器分离,便于分析压测结果,最好压测和被压的机器放置在同一机房,降低网络及带宽带来的数据波动和因此导致的瓶颈。
  这里无论发压和被压,都是会占用资源。当出现系统瓶颈时,如果两个在同一个机器,对你的分析会造成很大的影响。
  如果你的上层请求是同内网下的同idc的调用方法,那么你可以选择同idc的机器进行发压参考。
  当然,如果你的预期QPS很低,完全不会达到机器瓶颈,只是验证一些内存泄漏等简单并发问题,混布也未尝不可。
  问题三、云平台的性能测试
  云平台的性能测试和一般的性能测试也是差不多的,云平台的性能并发容量比较大,用户数多一点。
  1.首先分析性能测试点如:发生频率非常高的,关键程度非常高的资源占用非常严重的等;
  2.性能指标如:首页打开速度,支持最大在线用户,系统支持的并发用户数等;
  3.工具的选择:JMeter,Loadrunner等。
  问题四、如何设置才能保持用户始终在线;
  1.录不同的场景在多个script里然后controllor里同时并发应该就行了。
  2.登录后什么都不做,肯定要超时掉线的。那些保持在线的脚本,应该在action里面定时发送一些能够让服务器认为你仍然在线的请求,比如心跳请求,否则会掉线的。
  另一种做法是你就保持思考时间不变,什么都不要发,但是让开发人员修改服务器端的超时时间,变得非常长,也可以达到不掉线的目的。
  总结:
  相信这些常见面试问题,在实际中很多人都会遇到。作为软件测试工程师,对面试问题的严谨,注意提升自己良好的沟通和表达能力,在面试过程中体现出扎实的软件测试基础知识,足够的耐心、细心、信心、责任心,善于自我总结、自我督促和不断学习的能力,相信大家都能在面试中有出色的表现,找到心仪的工作。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-6 13:28 , Processed in 0.070237 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表