zoukankan      html  css  js  c++  java
  • 性能测试基本概念

    性能测试需要掌握的知识:

    1、性能测试工具

    2、操作系统(windows,Linux(CPU,磁盘,网络,内存))

    3、编程语言(java简单代码(jvm))

    4、网络知识

    5、数据库(mysql、Oracle、redis、mongoDb)

    6、中间件(Nginx,Tomcat)

    7、架构(可以从项目的数据流向开始了解)

    性能测试关注的常用指标(重点)

    1、并发

    2、并发用户数

    3、事务

    4、响应时间

    5、TPS

    6、吞吐量

    7、点击率

    8、资源利用率

    性能测试基础:

    一、什么是软件性能测试

    性能测试是指被测系统,在一定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的CPU,内存,事务响应时间,等)如果不符合,就发现了系统的性能瓶颈

    衡量指标有俩个方面:响应时间及时处理能力

    二、性能测试的目的

     1、评估系统处理能力:验证系统处理能力是否达到规划时的水平

    2、发现系统的性能瓶颈:某个接口响应时间是否很长,tps很低,硬件方面是不是可以支持

    3、验证系统稳定性和可靠性:长时间的测试会不会导致内存溢出

    4、系统调优:重复执行性能测试,来验证系统调优是否取得预期结果

    问题分析:

    中间件:优化连接数(Nginx,tomcat)

    tps低:需要看服务器资源使用情况,如果资源使用情况很低,那么一般都是连接数导致的,需要调大你的连接数(包括中间件的连接数,数据库的连接数),

    如果时资源使用很高,需要定位是哪个进程导致的

    三、性能测试方法

     

    常规性能测试:a点到b点的性能测试,指以系统预期性能指标为前提,对系统不断增加压力,以验证系统能否达到预期性能。

    负载测试:不断的增加系统的并发用户数(10-30-50),给系统不断的增加压力,直到性能指标(例如响应时间)超过预期值,或者系统已达到饱和状态

    负载测试主要目的:是找到系统处理能力的极限在哪里

    压力测试:负载一定的情况下(例如100),持续的运行一段时间(例如n*24小时),来验证系统的稳定性

    四、性能测试的步骤

     性能测试的时候,先做单接口的性能测试场景,方便定位性能问题,

    再做混合场景的性能测试,看有没有新的性能问题

    五、性能测试应该关注的指标

    用户关注的:系统的响应时间

    响应时间的组成:网络( N1+N2+N3+N4)+服务器(A1+A2+A3)

    测试(管理)人员关注的性能点:

    性能关注点  

    应用服务器/数据库服务器资源使用是否合理

    资源利用率               

    系统能否实现可扩展

    可扩展性

    系统最多支持多少用户

    系统容量

    系统最大业务处理能力

    tps(每秒服务器能够处理的请求数)

    系统性能可能存在的瓶颈在哪里

    数据库慢查询等

    更换哪些设备能够提高系统性能

    cup核数加大,内存加大,固态硬盘等,特殊节日堆服务器等

    稳定性,能否支持7*24小时的业务访问

    一般跑8小时,12小时

    开发人员关注的性能:

    架构设计是否合理

    系统架构 (架构数据流向)

    数据库设计是否合理

    数据库设计(监控是不是有慢查询)

    代码是否存在性能问题

    代码(多个事务一起跑)

    代码是否存在不合理的内存使用方法

    代码(监控内容是否有内存溢出)
       

    性能测试工具对比:(100以上均算大并发)

    LR jmeter

    专业化的工具,需要购买序列号,或者用破解版(国内目前可用lr11)

    开源的性能测试工具
    学习成本低,只需学习三大部分 做一个请求就需要设计很多插件                           
    脚本:lr支持录制,但不建议录制(对浏览器版本依赖强,可能录制不成功) 录制功能需要借助badboy,不建议录制
    报表:自带的监控信息很全 需要自己装插件
    大并发时数据比较准确 大并发时数据不是很准确
    支持线程和进程 只支持线程,不支持进程
    数据库处理比较麻烦 sql处理很方便

     术语解释:

    并发,分为狭义广义俩种并发:

    狭义并发:所有用户在同一时间请求同一接口

    广义并发:多个用户在同一时间请求不同的接口

    在性能测试中,一般时先进行狭义并发,再进行广义并发

    性能测试的时候,先做单接口的性能测试场景,方便定位性能问题,再做混合场景的性能测试,看有没有新的性能问题

    并发用户数:

    系统用户数:注册过系统的所有用户,包括每天的活跃用户数以及僵尸用户数

    在线用户数:登录系统的用户,但不一定会对服务器产生压力,例如:有N个用户状态为在线状态,但是并不一定都会有请求,对服务器造成压力

    并发用户数:对服务器产生压力的用户,例如:可能在线的N个用户中,只有20%的用户对服务器产生了压力,也就是说这个接口只有20%的用户是并发用户

  • 相关阅读:
    vue --- 全局弹窗,只调用对应实例
    代理相关;win操作
    mongoBD + node + express
    菜鸟初学 node 推荐 亲测easy
    H5 ---- 点击遍历所有标签,复制对应的文本
    async与await初步应用
    C# Enum 添加自定义Attribute,然后通过泛型与反射的方式得到事先定义的标记
    VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误
    C# 获取数组的内存地址
    利用反射插入数据库与更新数据库
  • 原文地址:https://www.cnblogs.com/kulankadamei/p/11055908.html
Copyright © 2011-2022 走看看