zoukankan      html  css  js  c++  java
  • 性能面试 | 性能测试常见面试题

    性能测试常见面试题

    简述性能测试流程?

    1.分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下

    2.制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具

    3.编写测试用例

    4.搭建测试环境,准备好测试数据

    5.编写性能测试脚本

    6.性能测试脚本调优。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本

    7.设计测试场景,运行测试脚本,监控服务器,

    8.分析测试结果,收集相关的日志提单给开发

    9.回归性能测试

    10.编写测试报告

    如何确定系统最大负载?

    通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。

    你们系统哪些地方(哪些功能)做了性能测试?

    选用了用户使用最频繁的功能来做测试,比如:登陆,搜索,提交订单

    你们的并发用户数是怎么确定的?

    1)会先上线一段时间,根据收集到的用户访问数据进行预估

    2)根据需求来确定(使用高峰时间段,注册用户数,单次响应时间等

    你们性能测试在什么环境执行?

    参考答案:我们会搭建一套独立的性能测试环境进行测试

    你们性能测试什么时间执行?

    基准测试:功能测试之后,系统比较稳定的时候再做。

    负载测试:夜深人静,系统没人用的时候

    怎么分析性能测试结果?

    首先查看事物通过率,然后分析其他性能指标,比如,确认响应时间,事务通过率,CPU等指标是否满足需求;如果测试结果不可信,要分析异常的原因,修改后重新测试

    think_time的作用是什么?

    模拟真实生产用户操作,考察对服务器所造成的影响。

    在确定性能测试结果可信后,如果发现以下问题,按下面提供的思路来定位问题

    问题一:响应时间不达标

    查看事务所消耗的时间主要在网络传输还是服务器,如果是网络,就结合Throughput(网络吞吐量)图,计算带宽是否存在瓶颈,如果存在瓶颈,就要考虑增加带宽,或对数据的传输进行压缩处理;如果不存在瓶颈,那么,可能是网路不稳定导致。如果主要时间是消耗在服务器上,就要分别查看web服务器和数据库服务器的CPU,内存的使用率是否过高,因为过高的CPU,内存必定会造成响应时间过长,如果是web服务器的问题,就把web服务器对应上对应的用户操作日志取下来,发给开发定位;如果是数据库的问题,就把数据库服务器对应上对应的日志取下来,发给开发定位。

    问题二:服务器CPU指标异常

    分析思路:就把web服务器对应上对应的用户操作日志取下来,发给开发定位。

    问题三:数据库CPU指标异常

    分析思路:把数据库服务器对应上对应的日志取下来,发给开发定位。

    问题四:内存泄漏

    分析思路:把内存的heap数据取出来,分析是哪个对象消耗内存最多,然后发给开发定位。

    问题五:程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。

    原因:程序可能是单线程处理机制

    如何识别系统瓶颈?

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

    如何判断系统的性能是变好了还是变坏了

    通过基准测试对比性能指标

    你们的性能测试需求哪里来?

    1:客户提供需求

    2:运维提供需求

    3:开发提供需求

    如何实现200用户的并发?

    在脚本对应的请求后添加集合点

    什么情况下要做关联,关联是怎么做的?

    当脚本的上下文有联系,就用关联。

    比如登录的token关联,增删改查主键id关联

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

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

    2、使用万能的验证码

    你们性能测试做的是前台还是后台?

    BS项目:测试的是后台服务器的性能和浏览器端性能;

    APP项目:手机端和服务器端的性能都做

    性能测试指标有哪些

    响应时间

    吞吐量

    cpu

    内存

    io

    disk

    如何脚本增强?

    1、做参数化

    2、做关联

    3、添加事务

    4、添加断言

    5、添加集合点

    6、添加思考时间

  • 相关阅读:
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    剑指 Offer 20. 表示数值的字符串
    剑指 Offer 51. 数组中的逆序对
    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
  • 原文地址:https://www.cnblogs.com/wyf0518/p/11462001.html
Copyright © 2011-2022 走看看