性能测试:性能测试理论知识

一、常见的性能测试工具:
    Loadrunner(功能强大、重量级、商业软件)
    Jmeter(小巧灵活、轻量级、开源)
    Ngrinder(平台级产品、开源)
    NeoLoad(测试过程迅速、高效,可以非常频繁的执行性能测试以满足对产品的持续性能改进追踪)
    Loadster(商业软件、功能强大)
二、什么样的系统/模块适合做性能测试:
    1、用户量大,且访问量高的系统
    2、系统核心模块/主要功能
    3、业务逻辑或者算法复杂的功能
    4、促销推广活动功能
三、性能测试指标:
    1、响应时间:客户端响应时间+网络响应时间+服务器响应时间
       客户端响应时间:主要指胖客户端,内嵌了大量的逻辑,消耗时间需要关注
       网络响应时间:客户端请求的网络延迟+服务器响应的网络延迟
       服务器响应时间:服务器完成交易请求执行的时间,比如包括Web Server Time、APP Server Time、
       Database Time

       Top响应时间:将所有请求的响应时间先从大到小进行排序,计算指定比例的请求都是小于某个时间。
       该指标统计的是大多数请求的耗时。常用的Top响应时间包括Top90、Top95、Top99
       Top90(90%响应时间):90%的请求耗时都低于某个时间
       Top95(95%响应时间):95%的请求耗时都低于某个时间
       Top99(99%响应时间):99%的请求耗时都低于某个时间

    2、TPS:Transaction Per Second,每秒处理的事物数。
       在系统达到性能瓶颈之前,TPS和并发数成正比关系
       TPS = 1 / 响应时间 * 并发数
       TPS = 并发数 / 响应时间
    3、并发数:
       ①系统用户数:系统注册的用户总数
       ②在线用户数:当前统计正在访问的用户总数
       ③并发用户数:同一时刻让服务器产生压力的用户数。比如正在发帖的用户
    4、成功率:请求的成功率
    5、吞吐量:一次性能测试过程中网络上传输的数据量总和或者网络中上行和下行的流量总和。
       吞吐率:单位时间内网络上传输的数据量。
    6、PV(Page View):页面/接口的访问量
    7、UV(Unique Visitor):页面/接口的每日唯一访客
四、性能监控指标:
    1、系统资源指标:CPU、内存、磁盘IO、网络流量
    2、中间件指标:连接数、长短连接、使用内存
    3、数据库指标:连接数、锁、缓存、内存、SQL效率
五、性能测试的分类:
    1、狭义的性能测试:在特定的运行环境下,验证系统是否具有需求明确要求的能力/目标。
    2、基准测试:在一定的软件、硬件、网络环境下,模拟一定量的用户运行一种或者多种业务,将测试结果作为
       基线,供后续参考。主要目的是找出系统的基本性能情况,为后续调优做准备。
    3、负载测试:通过在被测系统上不断加压,直到性能指标达到极限。主要目的是找出系统处理能力的极限。
    4、压力测试:在一定的负载或者饱和状态下,系统的处理能力以及系统是否会出现错误。主要测试系统在高压
       下,应用的表现。常用于系统稳定性检查。比如士兵最多能抗150斤负重,那么抗120斤,走1小时,看士兵能
       否扛得住。
    5、并发测试:测试多用户并发访问同一个应用、同一个功能时是否存在死锁、内存泄漏、资源争抢等性能问题。
    6、配置测试:通过对软/硬件配置的调整,找到不同配置对性能的影响程度,从而找到系统各项资源的最优分
       配原则。
    7、可靠性测试:系统在一定的负载下,持续运行一段时间(比如7天、一个月),以检查系统的稳定性。比如
       士兵最多能抗150斤负重,那么负重100斤走8个小时的表现如何。
六、性能测试流程:
    1、需求调研。比如被测系统的类型:业务处理型还是数据处理型。系统架构。系统协议类型。系统架构以及
       被测系统和其他系统的关系(是否需要搭建)。测试范围:哪些地方会出现性能瓶颈,哪些功能需要测试性能,哪些
       暂时不测。系统/业务的流程,业务/数据的流向。需要测试哪些性能指标。使用哪种性能测试类型。系统
       上线时间。测试数量级。系统使用场景。日常访问量。预期指标。原则:与线上一致。
    2、场景设计:模拟真实场景(单一场景/单脚本场景、混合场景/多脚本场景)、搭建仿真场景
    3、测试计划
    4、环境搭建:硬件、网络、软件版本、操作系统、数据库、配置信息等
    5、数据准备:基础数据(预计系统投入使用时的数据量,提前往系统中充数据)、业务数据(脚本编写过程中
       要使用的数据)
    6、测试套件开发
    7、性能测试执行
    8、调优回归
    9、测试报告 

你可能感兴趣的:(性能测试)