• 性能测试面试题一


     1、你们怎么开展性能测试的?

    答: 需求确认-> 测试方案->准备环境(硬件,软件)->测试工具选择->测试数据准备->脚本录制开发->系统调优->测试报告

    2、性能测试流程
    答:获取测试需求->测试架构的调研、业务模型调研、确定需求->测试计划(属于部门老大工作)->测试方案设计->环境的搭建->测试用例设计->测试数据准备->测试环境试运行->测试脚本开发->创建模型(场景)->执行场景(此过程中,需监控调试)->测试结果分析->问题反馈(相应的研发人员处理问题)->再次测试->最终报告

    3、如何进行需求分析的,数据模型、业务模型、测试模型

    答:

    1)数据模型:
    2)业务模型:是实际环境中,用户操作的业务量以及各个业务之间的比例,能真实的反应实际环境中系统的负载情况;一个系统可能会有几十个业务,我们测试过程中要重点关注占用总业务量百分之八十以上的几个业务场景;关于业务比例情况,如果是一个全新的系统,需要进行调研;如果是一个已上线的系统或者类似系统,我们可以对后台特殊交易日的历史数据进行统计分析,如取一个月、一个季度或者一年的数据,统计出平均值和峰值的业务量以及各业务之间比例。
    3)测试模型是以业务模型为基础,根据测试目标不同和业务模型进行参考比对,作为数据依据;在模拟实际真实用户场景时,测试模型要尽量接近业务模型。

    4、如果没有明确需求怎么收集性能测试需求数据
    答:客户没有给出相关性能指标或性能指标不明确,①.若业务属于已运营业务,已有历史数据,利用历史数据分析,得出指标;②若业务属于新业务,没有历史数据,可以参考同行相关业务数据进行分析,得出指标;③.若此业务属于新兴行业业务,以往没有同类业务的数据,只有凭借经验以及系统类型进行分析,得出指标了
    5、实际的数据量是多少,怎么推算出来并发用户数的
    答:推算用户数,请参考我的另一篇文章,链接地址:http://blog.csdn.net/qq_23101033/article/details/74977874
    6、性能指标有哪些,如何确定性能指标?
    答:性能指标有:
           ①资源指标:cpu、内存、io、网络带宽
         ②系统指标:并发用户数、响应时间、事物成功率、超时错误率
    用该计数器的值和目前网络的带宽比较。
          系统指标:并发用户数通过 
    7、性能测试方案有那些内容,如何写性能测试方案
    答:项目的简要说明、项目系统结构、项目的业务结构、以及项目的性能需求、测试环境数据以及测试策略方法、测试案例、测试人员进度安排以及测试风险预估等等。
    一般公司都有自己的测试方案模板,直接使用就行,如果是新项目,可以找一些类似项目的模板,根据自己公司项目,做一些改动,从而完成适合自己项目的测试方案
    8、性能测试策略如何确定的,你们公司都使用什么测试策略?
    具体的测试策略要根据具体的业务去确定,比如我之前遇的一个项目
    9、linux系统常用监控命令
    答;(1)监控CPU:
    java架构:
    vmstat->top(查看使用cpu较高的进程)->pidstat(查看哪个线程消耗了,也可以使用pidstat -p 10846 -u -d -t -w -h 1 1000)、或者使用top -H -p 进程号->jstack(做thread dump,例如:jstack -l 10846>10846.threadump)->查看nid(nid指native ID 对应系统的tid,但tid显示的10进制,nid显示的是16进制)->printf %x' ' 10861->转换后的结果为2a6d->对应到threaddump文件中,查到nid在哪一行,从而确定代码的哪一行对cpu的使用比较高
    C/C++架构:
    top->top -H -p 进程号 (查看线程状态)->gstack 进程号、或者pstack 进程号(生成线程堆栈)
     
    (2)监控IO
    vmstat  3 5 (3代表每3秒显示一次、5代表总共显示5次)->iostat -xm 3(-x显示和io相关的扩展数据、-m磁盘读写速度单位为MB),可以查看系统磁盘的读写量及cpu占用率)->iotop(定位到什么进程下的程序在作祟)
     
    (3)监控网络
    iftop工具
     
     
    10、top命令中load average数据代表什么意思
    答:显示的是最近1分钟、5分钟和15分钟的系统平均负载。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。
    11、了解jvm吗?jvm原理是怎么样的
    答:JVM是Java Virtual Machine(Java虚拟机)的缩写,说到jvm,对我们性能测试人员最先想到的就是jvm内存管理和垃圾回收。
            JVM栈:由堆、栈、本地方法栈、方法区等部分组成
    堆:通过new创建的对象的内存都在堆中分配,堆的大小可以通过-Xmx和-Xms来控制;堆的组成:新生代和旧生代
    新生代:新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活的对象转移到Survivor中,
    新生代大小可以由-Xmn来控制,也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例Eden区和Survivor区组成,
    Survivor:From Space和To Space组成
    旧生代:用于存放新生代中经过多次垃圾回收仍然存活的对象
    持久带:实现方法区,主要存放所有已加载的类信息,方法信息,常量池等等,可通过-XX:PermSize和-XX:MaxPermSize来指定持久带初始
    化值和最大值
    JVM常见配置:
    -Xmx:最大堆内存
            -Xms:初始时堆内存
       -XX:NewSize=n:设置年轻代大小
    -XX:NewRatio=n:设置年老代和年轻代的比值
    -XX:MaxPermSize=n:设置持久代大小
    jvm内存调优:
     对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源(主要是CPU),影响系统的吞吐量。特别要关注Full GC,因为它会对整个堆进行整理,具体查看我的另一篇博客,链接地址:http://blog.csdn.net/qq_23101033/article/details/65976123
     
    13、如果是C/C++架构系统如果开展性能测试
    答:主要考虑稳定性测试,C/C++需求自己进行垃圾回收
    14、性能测试过程中有没有碰到性能问题,怎么分析定位解决的
    15、内存泄露情况是什么现象
    答:
    16、如果tps曲线图上下波动很大,那你怎么去分析问题
    17、cpu资源负载高如何定位分析问题
    18、IO资源使用高如何分析定位分析问题
    19、有没有部署过性能测试环境,如何部署环境的
    20、配置优化性能测试如何开展,一般关注那些优化点
    21、可靠性性能测试如何开展,关注那些内容
    22、如何写性能测试报告,包含那些数据
    23、C/C++架构系统意外退出,没有生成core文件,是什么原因
    24、C/C++架构系统内存泄露表现是怎么样的,如果跟踪确定是内存泄露
    25、性能测试指标一般从哪里收集
    26、web页面性能如果优化
    27、你会使用那些性能测试工具,如果不使用loadrunner如何进行轻量级性能测试
  • 相关阅读:
    主线程MainThread与渲染线程RenderThread
    杀死进程的几种方式
    Android App的设计架构:MVC,MVP,MVVM与架构经验谈
    动画完全解析(二):补间动画原理及自定义动画
    SublimeText教程
    JqGrid自定义的列
    js 除法 取整
    js日期字符串增加天数的函数
    Oracle中的rownum和rowid
    jQuery判断对象是否是函数
  • 原文地址:https://www.cnblogs.com/Alexr/p/9512657.html
Copyright © 2020-2023  润新知