• 软件性能测试面试题二



    1、性能测试流程
    答:获取测试需求->测试架构的调研、业务模型调研、确定需求->测试计划(属于部门老大工作)->测试方案设计->环境的搭建->测试用例设计->测试数据准备->测试环境试运行->测试脚本开发->创建模型(场景)->执行场景(此过程中,需监控调试)->测试结果分析->问题反馈(相应的研发人员处理问题)->再次测试->最终报告
    2、如何进行需求分析的,数据模型、业务模型、测试模型
    答:①数据模型:当前系统注册用户数、日活跃用户数,峰值用户数等等
    ②业务模型:是实际环境中,用户操作的业务量以及各个业务之间的比例,能真实的反应实际环境中系统的负载情况;一个系统可能会有几十个业务,我们测试过程中要重点关注占用总业务量百分之八十以上的几个业务场景;关于业务比例情况,如果是一个全新的系统,需要进行调研;如果是一个已上线的系统或者类似系统,我们可以对后台特殊交易日的历史数据进行统计分析,如取一个月、一个季度或者一年的数据,统计出平均值和峰值的业务量以及各业务之间比例。
    ③测试模型是以业务模型为基础,根据测试目标不同和业务模型进行参考比对,作为数据依据;在模拟实际真实用户场景时,测试模型要尽量接近业务模型。
    3、如果没有明确需求怎么收集性能测试需求数据
    答:客户没有给出相关性能指标或性能指标不明确,①.若业务属于已运营业务,已有历史数据,利用历史数据分析,得出指标;②若业务属于新业务,没有历史数据,可以参考同行相关业务数据进行分析,得出指标;.若此业务属于新兴行业业务,以往没有同类业务的数据,只有凭借经验以及系统类型进行分析,得出指标了
    4、实际的数据量是多少,怎么推算出来并发用户数的
    答:推算用户数,请参考我的另一篇文章,链接地址:http://blog.csdn.net/qq_23101033/article/details/74977874
    5、性能指标有哪些,如何确定性能指标?
    答:性能指标有:
           ①资源指标:cpu、内存、io、网络带宽;一般按照,CPU的使用率不超过80%;内存的使用率不超过80%;IO读写不能过大;用该计数器的值和目前网络的带宽比较。
         ②系统指标:并发用户数、响应时间、事物成功率、超时错误率;  并发用户数和响应时间来源于产品需求、事物成功一般需要满足99.99%
    6、性能测试方案有那些内容,如何写性能测试方案
    答:项目的简要说明、项目系统结构、项目的业务结构、以及项目的性能需求、测试环境数据以及测试策略方法、测试案例、测试人员进度安排以及测试风险预估等等。
    一般公司都有自己的测试方案模板,直接使用就行,如果是新项目,可以找一些类似项目的模板,根据自己公司项目,做一些改动,从而完成适合自己项目的测试方案
    7、性能测试策略如何确定的,你们公司都使用什么测试策略?
    具体的测试策略要根据具体的业务去确定,比如我之前遇的一个项目
    8、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工具
    9、top命令中load average数据代表什么意思
    答:显示的是最近1分钟、5分钟和15分钟的系统平均负载。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。
    10、了解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
    11、如果是C/C++架构系统如果开展性能测试
    答:主要考虑稳定性测试,C/C++需求自己进行垃圾回收
    12、性能测试过程中有没有碰到一些难以解决的性能问题
    答:在一次压测过程中,日志一直报timeout,然后抓请求,客户端说请求已发送,但服务器端却显示没有请求过来,后来定位了一周,运维才发现是由于防火墙策略导致的,最后关闭防火墙后,正常了
    13、内存泄露情况是什么现象
    答:内存回收低位点不断升高(以每次内存回收的最低点连成一条直线,那么它是一条上升线);内存回收的频率也越来越高,内存占用也越来越高,最终出现"Out of Memory Exception"的系统异常。
    14、如果tps曲线图上下波动很大,怎么去分析问题
    15、有没有部署过性能测试环境,如何部署环境的
    16、配置优化性能测试如何开展,一般关注那些优化点
    17、可靠性性能测试如何开展,关注那些内容
    18、如何写性能测试报告,包含那些数据
    19、C/C++架构系统意外退出,没有生成core文件,是什么原因
    20、C/C++架构系统内存泄露表现是怎么样的,如果跟踪确定是内存泄露
    21、性能测试指标一般从哪里收集
    22、web页面性能如果优化
    23、你会使用那些性能测试工具,如果不使用loadrunner如何进行轻量级性能测试
  • 相关阅读:
    SAP UI5应用和Hybris Commerce的国际化(internationalization)支持
    PHP获取目录下面所有文件和文件夹
    php利用smtp类轻松的发送电子邮件
    Redis和Memcached的一些区别
    redis命令大全参考手册
    redis类与用法
    公共类属性使用
    php 非对称加密解密类
    RSA密钥生成与使用
    Centos下安装Lamp和vsftpd、redis
  • 原文地址:https://www.cnblogs.com/igubai/p/7426164.html
Copyright © 2020-2023  润新知