性能测试基础篇

性能测试之基础篇

一、灵魂八问!!!

  • 什么是软件性能?
    • 两个方面:响应时间,及时处理能力
  • 什么叫性能测试?
    • 指被测系统,在一定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的CPU,内存,事务响应时间,等)
  • 什么样的系统需要做性能测试?
    • 用户多,存在大并发场景系统
  • 如何做性能测试?
    • 项目性能调研、业务需求分析、性能测试方案,脚本编写,场景覆盖、负载、压力、测试结果分析、报告产出
  • 如何定位性能根源,性能的瓶颈究竟在哪里?
    • 服务器:在日志里打印代码的处理时间,
    • 数据库:打开慢查询,设置时间阈值,打印处理时间超过阈值的sql。
    • 最直接的表现:用户态的CPU会很高
  • 性能测试目的
    • 验证系统的处理能力、识别系统的性能瓶颈、保证系统的可靠性及稳定性(一定并发数12小时左右
  • 如何提升性能?
    -业务策略优化、根据监控提升硬件短板、优化架构、优化代码逻辑、优化sql语句
  • 性能测试需要做哪些准备?
    • 千兆交换
    • 8G 16C
    • 造数据-单表20-40W起步

二、软件性能关注是多层面的.

2.1、用户角度:系统的响应时间

  • 响应时间==网络时间+服务器处理时间

2.2 管理人员的性能关注点

  • 应用服务器、数据库服务器:资源利用率
  • 支撑多少用户、最大并发数:系统容量
  • 是否更换硬件、优化代码、优化sql:已经测试现有的支撑用户数
  • 7*24小时持续处理业务(9999):稳定性、可靠性

2.3 开发人员的性能关注点

  • 架构是否合理
  • 数据库设计
  • 代码逻辑
  • 线程、死锁,资源释放

2.4 测试人员呢?

三、性能测试的方式

3.1、负载测试

定义:50-100-200系统上不断增加压力,直到响应时间或TPS达到一个拐点

特点:

  • 找系统处理处理能力的极限
  • 该方法需要在指定测试环境下运行,通常需要考虑被测系统的业务压力量和典型的业务场景
  • 一般来了解系统的性能容量、配合调优

3.2、压力测试

负载一定的压力(比如100并发)持续运行一段时间比如(7*24小时)验证系统的稳定性

3.3 性能测试的工具选择:jmeter ,LR,PTS

四、性能测试的术语

4.1、并发

并发分为狭义和广义两类

  • 狭义:用户在同一时间内做同一事情
  • 广义:用户在同一时间做不同事情

灵魂一问:实际项目的性能测试如何并发场景设计?

  • 先狭义(单接口)在广义(混合场景)

灵魂在问:为什么要先单场景接口测试?

  • 更好的定位问题,发现问题

灵魂追问:为什么要混合场景测试?

  • 贴合用户场景,验证系统的稳定性,多各关联接口时会不会出现新的问题?

4.2、并发用户数

  • 系统用户数:注册用户数,存在一定的僵尸用户
  • 在线用户数:登录系统的户数,状态时在线,但不一定对服务器产生压力
  • 并发用户数:对服务器产生压力的用户

惊魂一问:如何获取并发用户数?

老系统:可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数,并发用户数可以取10%

新系统:业务部门探讨,竞品,经验。

4.3 事物

  • 事物是性能脚本中的一个重要特性,要度量服务器的性能,需要定义事物,每个事物都需要事物开始,事物结束标志,事物用来衡量脚本中一行代码或多行代码执行所需要的时间
  • 例如:访问一个网站,可以把首页当成一个事物,可以把登录当初一个事物,也可以把登录+首页当成个事物。

4.4 响应时间

发出请求的时间、网络传输的时间、服务器处理时间的和

问一问:响应时间==用户感受时间么?

4.5 TPS

定义:单位时间内系统处理事物的数据。衡量系统处理能力的,非常非常重大的指标

惊魂再问:如何获取系统TPS峰值

  • 已有系统:可选取高峰时刻,在一定时间内(如3-10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以2-5倍作为峰值的TPS, 例如:峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000-5000。
  • 新系统:与业务部门商讨,竞品、经验

灵魂再问:QPS、RPS呢?

4.6 吞吐量

不严格意义来说就是TPS,跟TPS和并发数密切相关

TPS = 并发数/平均响应时间

4.7 点击率

  • 客户端单位时间发起的请求数
  • 衡量客户端性能的

点击率==并发数??

4.8 资源利用率

定义:指系统资源的使用程度,比如服务器的cpu、内存、磁盘、贷款等利用率

  • CPU:主要进行判断和处理,能够反映系统的繁忙程度、一般分为系统CPU(%sys)、用户CPU(%user)、系统CPU是指系统本身使用的资源、用户cpu是指应用程序所使用的资源,对象不同
  • Load Average:指一段时间内cpu正在处理或等待cpu处理的任务,也就是cpu使用队列的长度的统计信息。
  • Memory:储存数据,从内存中读取必从磁盘上读取快
  • 队列:可以理解位地铁战的排队情况
  • 网络:重点关注网络的流量,看是否存在带宽瓶颈
原文地址:https://www.cnblogs.com/jiangmingbai/p/12522082.html