• 性能测试第一天


      基础认识,从用户角度来说,web系统响应的直观认识:

    1、系统架构实现技术

      (1)主要从CDN、负载均衡服务器、网络服务器、应用服务器、缓存服务器、数据库服务器描述;

      (2)CDN:

    1 CDN,Content-Distribution-Network
    2 内容分发网络
    3 是IDC运营商提供的一种婚存服务

      (3)负载均衡服务器:

    1 功能:根据设定的规则将来自用户的 请求分配到不同的服务器上
    2 常见的负载均衡服务器: 3 LVS 4 Nginx 5 F5:专用的负载均衡服务器

       (4)网络服务器:

    功能:1、对请求进行解析
         2、对静态资源进行缓存
    
    常见的网络服务器软件:Nginx    
                      Apache

      (5)应用服务器:

    1 功能:应用服务器是项目部署的地方,为项目提供运行环境
    2 
    3 常见的应用服务器软件:Tomcat
    4                   Weblogic
    5                   jboos等
    6 
    7 与性能相关的技术   :内存使用配置

       (6)缓存服务器:

    1 功能:对应用程序经常访问的数据库提供缓存服务,将这些平常经常访问的数据缓存到内存中
    2 
    3 常见的缓存应用软件:Memcache
    4                  Redis
    5 
    6 注意:将对系统整体影响最多的数据放到缓存里面
    7    提高缓存的命中率(从缓存中成功读取数据的次数/访问缓存的总次数)

      (7)数据库服务器:

    功能:提供数据存储功能
    
    常见的数据库:Mysql、Oracle、db2、infomix、Nosql
    1 与性能有关的技术:
    21)读写分离
    32)分库
    43)分表
    54)RAID

      注释:(1)  读写分离:主数据库---主数据库只要负责额写入数据

                    从数据库--从数据库只要负责查询数据

              主数据库和从数据库之间要进行数据同步,保证数据的一致性,降低单台数据库服务器的I/O量和CPU使用率;

          (2)分库:将子系统或业务的数据存储到单独的数据库服务器上;

          (3)分表:把一张表拆分成多个表,将一个表里面的数据存储到多张表里面

                垂直拆分:垂直拆分,减少的是表的字段数,单个表里面的记录行数没有变;

                水平拆分:水平拆分,减少单个表里面的记录行数,避免单个表记录数据太多;

          (4)RAID:冗余磁盘阵列

                RAID0、RAID1、RAID5(最常用)、提高磁盘的读写性能。

    2、性能测试基础

      (1)什么是性能测试?

        性能测试根据协议模拟用户的操作,向服务器产生压力,检查服务器是否有性能方面的问题。(性能测试是基于协议的,与页面无关

      (2)性能测试的种类?

    1 负载测试:测试系统在崩溃前可以处理的最大业务能力
    2 
    3 压力测试:测试系统在搞负载情况下是否可以长时间稳定运行
    4 
    5 并发测试:测试系统和数据库在并发情况下有没有线程安全问题、资源争用导致的锁问题
    6 
    7 配置测试:用一套脚本或者场景运行在不同的配置上,以获取系统的最优配置
    8 
    9 基准测试:获取系统调优前的性能表现,为调优后提供一个比较的标准

      (3)性能测试指标

        重要指标:吞吐量、资源占用、并发用户数、响应时间、业务成功率

    吞吐量
    
    单位时间内服务器处理的业务量    
    单位:TPS:Transaction Per Second 单位时间内服务器处理的事务量
            HPS:Hits Per Second 单位时间内服务器处理的点击量    
            QPS:Query Per Second  单位时间内服务器处理的查询量
    
    单位时间内的网路数据流量
    单位:bit 比特
       Byte 字节
       KB,M
    1 资源占用
    2 
    3 CPU:处理同样的应用CPU使用率越低越好,一般CPU使用率不超过75%
    4 
    5 内存:一般情况下内存使用率不超过75%
    6 
    7 磁盘I/O:从系统整体看,对磁盘的读写越少性能越好
    8 
    9 网络带宽:不能超过网卡提供的带宽
     1 并发用户数
     2 
     3 在线用户数:在线用户不进行操作的情况下,对系统的负载几乎是可以忽略的(在线用户不一定与服务器进行了数据的交互)
     4 
     5 并发用户数:同一时刻与服务器进行数据交互的所有用户数量。
     61)计算并发用户数的时候,一般要转换为并发业务数量
     72)计算并发用户数的时候,一般使用2/8原则:80%的业务是在20%的时间内发生的
     83)比如某网站一天有10万次访问
     94)并发数据来源:新项目:跟PO、PM确定访问用户量
    10                        老项目:从历史数据中提取访问数据
    11         注:并发是一个瞬时的概念,不是一个过程

    一般情况下,可以参考一下办法来确定性能测试时的并发用户数:
          (1)参考其他同类产品;(2)分析历史数据;(3)试上线运行。
    1 响应时间(一般的指标为2 5 72 
    3 用户角度的响应时间:从提交请求到显示页面     
    4 
    5 服务器角度的响应时间:从收到请求开始到发出响应结束
    6 
    7 性能测试过程中的响应时间:从发出请求开始到响应结束

    注:以一个web应用的页面响应时间为例,从客户端发送请求到服务处理完成的整个过程如上图所示。从图中可以看出,页面的响应时间可以分解成“网路传输时间”(C1+S2+S3+C4)和“应用服务器处理的时间”(S1+S4),“数据库处理的时间”(d1),所以整个web页面请求的响应时间为C1+S1+S2+d1+S3+s4+c4
    1 业务成功率:在涉及到钱的业务中,要优先考虑业务成功率,要保证业务成功率尽量接近100%

    注:用户角度的响应时间组成:

      服务器角度的响应时间组成:服务器处理请求的时间+服务器之间传输的时间

      性能测试过程中的响应时间组成:

      (4)性能测试过程

        注:性能测试的介入时间:一般认为性能测试要在系统测试完成之后开始介入,实际上,性能测试可以在产品原型和数据结构设计完成后就开始介入,开始分析表结构和找出最优SQL语句;

        1)确定哪些业务需要纳入性能测试的范围中(用户访问最频繁的、被调用比较多的业务模块、业务重要性高的)

        2)确定性能测试的指标(吞吐量、资源占用、响应时间、并发用户、业务成功率)

        3)人员和进度安排

        4)测试环境准备(测试环境的软件配置与生产环境尽量一样,硬件配置从水平角度进行拆分)

        5)脚本开发

        6)监控,进行性能测试

        7)手机分析结果

        8)定位问题,调优

        9)复测

    3、性能测试脚本开发------欲知后事,且听下回分解。

  • 相关阅读:
    kendoUI行编辑器的使用grid.editRow($("#grid tr:eq(1)"))无效
    Kendo-UI学习 DataSource 数据源属性说明
    fineReport 下拉联动 js
    报表FineReport中单元格中各种颜色的标识说明
    keil DSP最新版本
    ESP8266固件烧录篇
    git 报错 时出现Clone failed early EOF错误解决
    STM32 HAL库、标准外设库、LL库(STM32 Embedded Software)
    再谈EPLAN 中的项目结构-帮助理解
    启动EPLAN时,应该选哪个版本?Compact/select start/professional/select/maintenance/professional+/ultimate
  • 原文地址:https://www.cnblogs.com/feifei-cyj/p/8426051.html
Copyright © 2020-2023  润新知