Jmeter 性能测试面试题(附答案),收藏查看(1)

如果你最近面试中被卡在了性能面试题上,那么这篇笔记务必要背下来哦!当然有认真学过,能够充分理解就更好啦~

性能测试题目

1.简述性能测试的步骤/流程?

① 分析需求

② 制定测试计划和方案(时间,人力)

③ 设计性能测试场景和用例(并发,负载,压力,稳定性等)

④  搭建环境===

 准备用户数据(如何确定用户并发数)

线上的注册用户数的10%做测试环境的在线用户

根据高峰时间段和业务量,计算平均并发和峰值并发

 设计性能测试脚本(jmeter)

线程、请求数、关联、断言、参数化、报告

不同的线程组设计不同的测试类型

 运行、监控测试数据

 分析性能瓶颈:吞吐量,响应时间,资源利用率

 性能调优 :吞吐量调优,网卡宽带、硬件调优、Cpu,磁盘

 出具性能测试报告

2.吞吐量大幅度波动有哪些原因?

内存不足,线程数过多

3.CPU资源利用率很高如何排查?

①CPU资源利用率很高的话,需要看CPU消耗User、Sys、Wait哪种状态。 ②如果CPU User非常高,需要查看消耗在哪个进程,可以用top(linux)命令看出,接着用top –H –p看哪个线程消耗资源高。如果是Java应用,就可以用jstack看出此线程正在执行的堆栈,看资源消耗在哪个方法上,查看源代码就知道问题所在;如果是c++应用,可以用gprof性能工具进行分析。 ③如果CPU Sys非常高,可以用strace(linux)看系统调用的资源消耗及时间。 如果CPUWait非常高,考虑磁盘读写了,可以通过减少日志输出、异步或换速度快的硬盘。 4.一个web系统,用户从打开浏览器输入网址页面显示在浏览器中,这个过程当中,页面给用户总的响应时间通常可以细分为哪些?

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

5.响应时间和吞吐量直接的关系是什么?

吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。

6.报错OutOfMemoryError: PermGenspace解决办法?

发生这种问题的原意是程序中使用了大量的jar或class,使java虚拟机装载类的空间不够,与PermanentGeneration space有关。解决这类问题有以下两种办法: ①增加java虚拟机中的XX:PermSize和XX:MaxPermSize参数的大小,其中XX:PermSize是初始永久保存区域大小,XX:MaxPermSize是最大永久保存区域大小。如针对tomcat6.0,在catalina.sh或catalina.bat文件中一系列环境变量名说明结束处(大约在70行左右) 增加一行: JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m" 如果是windows服务器还可以在系统环境变量中设置。感觉用tomcat发布sprint+struts+hibernate架构的程序时很容易发生这种内存溢出错误。使用上述方法,我成功解决了部署ssh项目的tomcat服务器经常宕机的问题。 ②清理应用程序中web-inf/lib下的jar,如果tomcat部署了多个应用,很多应用都使用了相同的jar,可以将共同的jar移到tomcat共同的lib下,减少类的重复加载。这种方法是网上部分人推荐的,我没试过,但感觉减少不了太大的空间,最靠谱的还是第一种方法。

7.报错OutOfMemoryError: Java heap space解决办法?

发生这种问题的原因是java虚拟机创建的对象太多,在进行垃圾回收之间,虚拟机分配的到堆内存空间已经用满了,与Heapspace有关。解决这类问题有两种思路:

①检查程序,看是否有死循环或不必要地重复创建大量对象。找到原因后,修改程序和算法。 我以前写一个使用K-Means文本聚类算法对几万条文本记录(每条记录的特征向量大约10来个)进行文本聚类时,由于程序细节上有问题,就导致了Javaheap space的内存溢出问题,后来通过修改程序得到了解决。

②增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms256m-Xmx1024m

8.有验证码的功能,怎么做性能测试?

①将验证码暂时屏蔽,完成性能测试后,再恢复

②使用万能的验证码

9.解释常用的性能指标的名称和具体含义

事务:(全称:transaction),单位:个,即用户在准备进行一个操作到完成操作的过程

思考时间:(全称:thinktime),单位:秒,一般与事务组合使用

集合点:(全称:rendezous),一般与事务组合使用

事务响应时间:(全称:transaction response time),单位:秒,其主要作用为评估当前系统的响应时间的快慢

事务tps:(全称:transaction per second)事务处理能力,单位:笔/秒,其主要作用为评估当期服务器的处理能力

并发用户数:(全称:running vusers)单位:个,其主要作用为用来评估当前服务器的负载压力,并发用户计算公式:事务响应时间*事务tps=并发用户数

吞吐量:(全称:throughput),单位:字节,即指客户端在向服务器端发起请求后,其服务器的返回信息。吞吐量的计算公式为:总事务tps总返回字节数运行时间=吞吐量

点击数:(全称:hits per second),单位:次/秒,即每秒客户端向服务器端发起的总请求数,其主要作用为用来评估当前服务器的负载压力

通过事务数:单位:个,即系统在运行一段时间内其事务的总计完成事务数

失败事务数:单位:个,即系统在运行一段时间内其事务的总计完成失败事务数

事务通过率:即指系统在运行一段时间内其事务完成的成功率,其主要作为是用来评估当前系统的稳定运行处理能力。事务通过率的计算公式:成功事务数/(成功事务数+失败事务数)*100%

cpu资源利用率,即系统在运行一段时间内,其各相关服务器cpu的资源耗用情况

10.怎么根据线下环境评估线上环境的性能

首先线下必须要有专门的性能测试环境

线下环境单台机器配置和线上不能相差很大,可以通过单台的机器性能推算出多台机器性能(需考虑一定的性能损耗)

如果线下机器配置很差,只能测试出程序有无性能问题,这样线下测试出来的数据对线上没有太大参考意义

如果想获取比较准确的线上性能情况,建议最好做线上的性能测试

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值