性能测试基础---性能测试基础指南

Posted wendy-0901

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试基础---性能测试基础指南相关的知识,希望对你有一定的参考价值。

·企业对于性能测试工程师的要求:
  ·要求熟练掌握至少一种性能测试工具,并且能够实现性能测试脚本的开发。
  ·能够获取、分析、提炼性能需求。
  ·能够根据性能需求去进行测试场景的设计和实现。
  ·能够根据性能的需要进行必要的监控。
  ·能够根据性能测试结果、集合监控、服务器日志等数据分析、定位性能瓶颈
  ·能够提出调优建议。
  ·能够根据需要编写合格的性能测试报告。
  ·具备良好的沟通表达能力、团队合作能力。
  ·掌握一些其他必要的工具。


·性能测试工程师所面临的挑战
  ·资源问题
    人力
    物力

  ·知识面问题:
    广度优于深度
    技术更新


·性能:
  什么是性能?
  性能是指事物的性质和能效。
  对于软件系统来说,性能指标、说法很多,但是性能从本质上来说,就是两点:
  ·how fast:是用来衡量一个系统的处理效率。
  ·how much:是用来衡量一个系统的处理能力。

PS:一般来说,论及一个系统的性能,必须要同时衡量这两点。
  系统的性能其实没有绝对意义上的好和坏,只有是否满足或者符合需求。


·常见的性能指标:
  性能指标很多,常见的一般有下列指标:
    ·响应时间:反应的一个系统的处理效率。
    工具的解析执行-DNS解析-连接的建立时间-请求的发送-服务器的处理时间-响应的接收。

  ·吞吐量:反应的是一个系统的处理能力。
    ·TPS/QPS:每秒事务数/每秒请求数。
    ·Throughput:统计的是数据流量,单位是byte。统计方式可以是网络流量or磁盘流量。

·资源利用率:
  事实上,资源利用率作为性能指标的意义远远小于其作为分析、定位性能瓶颈的数据的意义。
    一般来说,我们监控的资源是指:系统资源、服务器资源、数据库资源等。
    ·系统资源:CPU、内存、磁盘IO、网络带宽
    ·服务器资源:CPU、内存、连接数、GC等
    ·数据库资源:CPU、内存、缓存命中率、热点块、慢查询、执行计划等等。

PS:通常来说,响应时间和吞吐量指标都是由性能测试工具自身来提供。而资源利用率则可以通过专业的第三方工具来实现监控。


·负载用户的分类:
    性能测试的实现方式:通过性能测试工具在协议级别去模拟实现大量的虚拟用户去访问被测服务器。

    虚拟用户数取决于负载用户的数量。
    负载用户一般可以分为以下几类:
    ·系统最大用户数:理论上系统希望支持的最大用户。
    用户不一定是真实的人,可能是人、可能是设备、可能是接口的调用者。

·在线用户数:所谓在线是指长时间使用系统的人数。
  在线用户是小于等于系统最大用户数的。
  不同的行业,比例也有很大差异。


·并发用户数:
并发分为两种:
  ·严格意义的并发:对于服务器而言,服务器同时处理的请求的数量就是并发数。
    计算公式:服务器端并发处理能力=TPS*平均响应时间

    对于性能测试来说,是指同时发送给服务器的请求的数量。

·广义意义的并发:在线即并发。
  因为从某种意义上来说,用户在线即使没有发送请求(没有操作)、也是会要消耗服务器资源的,比如说连接数。


·性能测试的分类:
性能测试按目的可以分为以下几类:
  ·负载测试:测试目的就是为了得到系统的最大处理能力、最佳性能表现和最大有效负载用户数。
注意事项:
  ·负载用户的起点和变动。
  ·每一轮负载测试的环境的一致性。

·压力测试:是为了测试系统的稳定性。
实现方式:使得系统长时间在高压力情况下进行测试。
一般:7*24小时。

  ·容量测试:是为了测试系统在特定容量条件下的性能表现,或者通过测试去评估在特定容量条件下的性能表现。
  一般来说,系统容量是指以下方面:数据库、磁盘、网络带宽、连接数、缓冲池大小等。
  通常来说,数据库容量是我们在做性能测试的时候需要重点关注的。
要从以下几个角度考虑测试环境和真实线上环境的数据库的一致性:
  ·数据库的大小 单位是byte(GB\TB)
  ·数据库的级别 单位是条数。是指数据库中的记录的数量。
  ·数据特征

·基准测试:就是为了获取基准的性能指标。通常就是指响应时间和资源利用率
基准分为两种情况:
  ·同一轮次:通常来说建议取一个用户进行测试。

  ·不同轮次:以上一轮次为基准进行测试。

  ·配置测试:一般来说是为了获取系统的最低配置和推荐配置。
某些情况下,也会用于线上配置、线上环境性能的评估。

·并发测试:是为了测试系统是否存在资源争用、事务冲突、锁的升级等问题。


·性能测试工程师的自我修炼:
  ·了解操作系统
  ·了解计算机网络相关的知识。
  ·熟练掌握至少一种性能测试工具。
  ·熟练掌握至少一种服务器
  ·熟练掌握至少一种数据库
  ·熟练掌握至少一种编程语言。
  ·熟练文档的编写。
  ·具有良好的学习习惯和学习方式。

以上是关于性能测试基础---性能测试基础指南的主要内容,如果未能解决你的问题,请参考以下文章

服务端|性能测试入门指南 (慎入: 6000 字长文)

性能测试 基础概念

性能测试基础概念1

性能测试 基础概念

性能测试基础知识

性能测试性能测试基础:性能测试的概念分类场景和设计要点