zoukankan      html  css  js  c++  java
  • 性能测试基础篇

    性能测试之基础篇

    一、灵魂八问!!!

    • 什么是软件性能?
      • 两个方面:响应时间,及时处理能力
    • 什么叫性能测试?
      • 指被测系统,在一定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的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:储存数据,从内存中读取必从磁盘上读取快
    • 队列:可以理解位地铁战的排队情况
    • 网络:重点关注网络的流量,看是否存在带宽瓶颈
  • 相关阅读:
    strcmp()比较函数和strcasecmp()和strnatcmp()
    substr()函数
    改变字符串中的字母大小写
    explode()与相反函数 implode() 和join()
    PHP nl2br() 函数
    PHP trim() 函数
    PHP的count(数组)和strlen(字符串)的内部实现
    变量处理函数库
    php中定义数组的方法
    80端口的烦恼:[3]清除NT Kernel占用80端口
  • 原文地址:https://www.cnblogs.com/jiangmingbai/p/12522082.html
Copyright © 2011-2022 走看看