zoukankan      html  css  js  c++  java
  • 性能测试题总结(一)

    请讲出客户端下 3 个常用的性能指标的名称与具体含义?

    1)FPS(帧数),也就是所说的游戏运行是否流畅,受内存、CPU等因素影响;
    2)CPU占用率,也就是游戏运行过程中CPU占比,一般在30%左右个人感觉还是可以接受。如果CPU占用率过高就需要进一步优化了;
    3)电量损耗,也就是游戏运行状态下电量损耗是否过快,导致续航能力不足。如果耗电快、手机发烫明显,那也得进一步优化了。

    跟我说说你们的性能测试是怎么做的?

     

    app前端性能你们怎么测试的?

    前端性能测试,主要分为七个部分:

    启动时间、CPU、流量、电量、内存、FPS(每秒钟的帧数)、过度渲染

     主要测试的内容:

      启动时间:主要测试app在启动过程中的耗时情况

      CPU:主要测试app在使用过程中占用CPU的占比率

      流量:主要测试app在使用过程中所消耗的流量

      电量:主要测试app在使用过程中所消耗的电量

      内存:主要测试app在使用过程中对内存的消耗,验证在使用过程中无内存泄漏的情况

      FPS:测试app流畅度异常的情况

      过度渲染:可以发现app流畅度异常的情况 

     

    性能测试都测哪些场景?混合场景是怎么组合的?

    择性能测试场景前,我们可以先将上述说的这些场景来分分类。

    从用户使用APP时APP的activity是否在最前端,可将APP的使用场景分为:前台、后台。

    在后台时根据APP只是保持心跳等最基础功能,还是一些场景触发了相关功能,可分为:后台待机和后台使用场景。

    于是我们有了下面三个层次的场景:后台待机、后台使用、前台使用,场景模型如下:

     

    1. 场景与性能指标

    先说说这些场景要关注些哪些性能指标。

    1)后台待机

    指标:重点关注待机内存和待机耗电情况。流量有需要则关注。

    内存和耗电可取实际测试值作为数据。例如待机内存19M;24h待机电量3mAh。如果你的APP的耗电模块主要是CPU,你可以考虑使用CPU 时间片(jiffies)来评估。

    测试时长:这个场景的耗电和CPU消耗会比较小,测试时需要考虑较长时间的测试数据以便反应APP的性能情况。

    2)后台使用

    指标:重点关注一个场景触发APP功能时的内存、CPU使用率或电量。

    内存通常会取增量,即:触发功能后的内存-触发前的待机内存,作为某功能消耗的内存。

    3)前台使用
    常关注使用时的内存、CPU使用率、流量。如果是某个操作需要一些时间,需要关注速度和耗时。

    2. 场景与用户感知

    1)后台待机

    这个场景下用户的感知是:我没有使用这个APP,因此这种场景如果有性能消耗的情况下,一定是非常小的,否则用户会认为:我没用都占这么大内存!耗这么多电!让用户有这种感受是非常危险的。

    例如:手机管家只在通知栏有个小图标,用户没有感觉自己在使用。

    2)后台使用

    这个场景下APP确实进行了一些工作,但是用户对于自己使用了APP并不会有特别明显的感知。例如来电话时手机管家会进行电话的识别以判断是不是骚扰电话等,用户看到的是一个来去电悬浮窗,但是用户并没有主动使用,因此这种情况下性能消耗也不可以过高。

    3)前台使用

    这个场景是用户打开了APP进行使用,此时的性能消耗也是比较大的,但是用户的容忍度也会相对比较大。但是OOM导致闪退、手机发烫这些现象是绝对不允许的。性能消耗当然是越小用户越喜欢。

    3. 场景与测试优先级

    场景分层图中,三个层次场景成金字塔形状,他们的占用面积同时反映了他们在用户侧使用时占用的时长。

    这么多场景,时间有限,哪个场景更重要,我应该先测哪个呢?下面说说如何评估这些场景的重要程度和优先级。

    原则:用户在该场景停留越久,该场景越重要;场景被用户使用到的频率越高,该场景优先级越高。评估方法有:

    1)运营数据评估

    对于后台待机场景,我们使用时长来评估优先级。重要程度=时长(数值越高越重要)。从运营数据中我们可以得到场景1、2、3在用户侧使用的时长T1、T2、T3。例如用户平均每天亮屏5小时,灭屏19小时,那么灭屏待机场景重要程度=19,高于亮屏的5。

     

    对于后台使用和前台使用场景,我们用使用频率来评估,优先级=N,N=几天1次(数值越小优先级越高)。例如:收短信场景,这个场景每个用户每天都会遇到;而安装/卸载APP这个场景,用户可能平均5天操作一次。那么收短信场景的优先级=1,安装卸载app场景优先级=5。

     

     

    什么是混合场景?

    做性能测试,场景设计,就是为了模拟真实用户对服务器发起请求,那真实的环境用户请求会是什么样呢?也许同时,有 100 个人在访问你的服务器,对你服务器发起了请求事件,但是他们的请求可能各不相同,有的是刷新页面,有的是登录,有的请求某个商品,有的在添加购物车,有的在付款...... 每个人的情况可能都不一样,没有一定的非是即非的关系,但是,在这个时间点,对于服务器来说,收到了用户的请求,就必须处理,就有计算压力。所以,一个真正的混合场景,不是用一个 if 控制器就能实现的。

    如何实现性能测试的混合场景设计呢?

     loadrunner 

    loadrunner 中,要实现混合场景设计,我们可以在 Controller 中,添加多个不同的脚本,然后配置不同的策略来分配并发用户。可以设置不同的百分比虚拟用户,也可以直接设置不同数量的虚拟用户。场景运行时,就根据这样一个配置,一起向服务器发起请求。服务器收到的请求,就是不同脚本中的请求,从而实现了混合场景测试。

    Jmeter

    就是在一个 jmeter 测试计划下面,创建多个线程组,每个线程组中,就可以包括不同的接口取样器。同时,不同的线程组,还可以设置不同性能场景。每个线程组下面都挂不同的取样器

    不同的线程组,设置了不同数量的并发用户,当启动运行时,所有线程组,都开始运行了,而且都是独立运行。

     如果QQ可以正常登录,但百度访问不了,你怎么分析这个问题?

    Ping查看IP,ipconfig 看网络连通是否正常

    pconfig /flushdns清除缓存

    看任务管理器-进程,查看CPU占用率

    运行场景时,数据库中数据怎么复用? 

     运行前备份数据库,复用时还原数据库。

    监控指标
    性能测试通常需要监控的指标包括:
    1.服务器Linux(包括CPU、Memory、Load、I/O)。
    2.数据库:1.Mysql 2.Oracle(缓存命中、索引、单条SQL性能、数据库[/url]线程数、数据池连接数)。
    3.中间件:1.Jboss 2. Apache(包括线程数、连接数、日志)。
    4.网络: 吞吐量、吞吐率。
    5.应用: jvm内存、日志、Full GC频率。
    6.监控工具LoadRunner[/url]):用户执行情况、场景状态、事务响应时间、TPS等。
    7.测试机资源:CPU、Memory、网络、磁盘空间。
    监控工具
    性能测试通常采用下列工具进行监控:
    1.Profiler。一个记录log的类,阿里巴巴集团自主开发,嵌入到应用代码中使用。
    2.Jstat。监控java[/url]进程GC情况,判断GC是否正常。
    3.JConsole。监控java内存、java CPU使用率、线程执行情况等,需要在JVM参数中进行配置。
    4.JMap。监控java程序是否有内存泄漏,需要配合eclipse插件或者MemoryAnalyzer来使用。
    5.JProfiler。全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等,需要在JVM参数中进行配置。
    6.Nmon。全面监控linux系统资源使用情况,包括CPU、内存、I/O等,可独立于应用监控。
    7.Valgrind。监控C/C++程序是否存在内存泄漏,基于linux环境。
    8.Vmmap和ApplicationVerifier。监控C/C++程序是否存在内存泄漏,基于windows环境。

    如何识别性能瓶颈?如何发现web服务器的相关问题,如何发现数据库的相关问题?

    如何识别系统瓶颈?

    TPS指标分析,TPS即系统单位时间内处理事务的数量。当前随着用户数的增长期系统每秒可处理的事务数是否也会增长。

    如何发现应用服务器的相关问题?

    A、通过某些事务的运行,判断是否在应用代码层未进行调优导致事务响应事件过长;

    B、通过实时监控工具(nmon等)监控分析:

    a、系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;

    b、在系统运行过程中其内存是否存在内存泄漏现象;

    c、打开相应日志、分析在运行过程中是否存在交易报错并获取错误原因查看是否由于代码原因导致交易错误发生。

     如何发现数据库的相关问题?

    A、通过运行某些相应的已获取的SQL语句,判断是否由于数据库索引所导致的事务响应过长的问题发生。

    B、通过实时监控工具(nmon等)监控分析:

    a、系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;

    b、在系统运行过程中其内存是否存在内存泄漏现象;

    如何发现应用服务器的相关问题?

    A、通过某些事务的运行,判断是否在应用代码层未进行调优导致事务响应事件过长;

    B、通过实时监控工具(nmon等)监控分析:

    a、系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;

    b、在系统运行过程中其内存是否存在内存泄漏现象;

    c、打开相应日志、分析在运行过程中是否存在交易报错并获取错误原因查看是否由于代码原因导致交易错误发生。

    Jmeter

    1.你用jmeter做什么测试?

    • 接口,性能。

    2.如果有一个登录接口需要服务端返回参数,再带着这个参数去请求才能完成登录,用jmeter 怎么做

    • 可以利用Regular Expression Extractor传参

    JMeter性能测试主要关注哪些性能指标?

    Average:平均响应时间--默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间。
    Min:最小响应时间。
    Max:最大响应时间。
    Throughput:吞吐量,默认表示单位时间内服务器处理的请求数。
     
     如何使用jmeter进行并发登录测试

    1、添加设置线程数2、添加定时器,设置集合点3、添加CSV Data Set Config进行参数化配置4、添加http登录请求,调用参数5、查看聚合报告

    处在这个俗世,也得让自己变得更好吧
  • 相关阅读:
    hello world
    first demo
    Mac出现Operation not permitted
    java 获取一个数字中,各个数字出现的次数
    java 判断回文数字
    202001031
    20200103
    华为手机的系列
    java 反向打印一个数字
    java 生成两个数之间的素数
  • 原文地址:https://www.cnblogs.com/butaileng7/p/13549797.html
Copyright © 2011-2022 走看看