博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
性能测试第一天
阅读量:4334 次
发布时间:2019-06-07

本文共 2994 字,大约阅读时间需要 9 分钟。

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

1、系统架构实现技术

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

  (2)CDN:

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

  (3)负载均衡服务器:

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

   (4)网络服务器:

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

  (5)应用服务器:

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

   (6)缓存服务器:

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

  (7)数据库服务器:

功能:提供数据存储功能常见的数据库:Mysql、Oracle、db2、infomix、Nosql
1 与性能有关的技术:2     (1)读写分离3     (2)分库4     (3)分表5     (4)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 并发用户数:同一时刻与服务器进行数据交互的所有用户数量。 6         (1)计算并发用户数的时候,一般要转换为并发业务数量 7         (2)计算并发用户数的时候,一般使用2/8原则:80%的业务是在20%的时间内发生的 8         (3)比如某网站一天有10万次访问 9          (4)并发数据来源:新项目:跟PO、PM确定访问用户量10                        老项目:从历史数据中提取访问数据11         注:并发是一个瞬时的概念,不是一个过程 一般情况下,可以参考一下办法来确定性能测试时的并发用户数:       (1)参考其他同类产品;(2)分析历史数据;(3)试上线运行。
1 响应时间(一般的指标为2 5 7)2 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、性能测试脚本开发------欲知后事,且听下回分解。

转载于:https://www.cnblogs.com/feifei-cyj/p/8426051.html

你可能感兴趣的文章
牛客练习赛29 B
查看>>
数字校园项目-学生失联预警系统(三)----数据库设计
查看>>
C# 6.0部分新特性
查看>>
Docker命令之 exec
查看>>
centos yum源配置 与yum配置文件
查看>>
XXL-Job分布式任务调度
查看>>
ASP隐藏文件地址,并在下载时替换文件名
查看>>
Windows下MongoDB的安装与设置MongoDB服务
查看>>
Microsoft.Jet.OLEDB.4.0”提供程序不支持 ITransactionLocal 接口。本地事务不可用于当前提供程序...
查看>>
oc 代码块的使用
查看>>
转:Eclipse中打开文件所在文件夹的插件及设置
查看>>
Django 之Form
查看>>
cocos2dx中的用户数据的管理
查看>>
微信公众平台开发教程(九)微信公众平台通用开发框架
查看>>
wsdl 结构解析
查看>>
IIS 支持 ajax 跨域
查看>>
python的切片
查看>>
JavaScript Date 对象
查看>>
Java 反射机制分析指南
查看>>
自动化测试前序(https://blog.csdn.net/ling_mochen/article/details/79314118)
查看>>