【性能测试】一、性能测试入门

一、性能测试VS功能/自动化测试

功能/自动化测试:

  • 输出: 找bug 预期结果与实际结果进行比较,
  • 隐藏的前提:模拟都是1个用户的操作

性能测测试:

  • 不是模拟1个人,模拟多个人同时操作
  • 关注:多个人操作时,响应时间,

二、性能测试的定义

性能测试的定义:通过自动化测试工具或者代码手段,来模拟正常、峰值负载访问被测系统,来观测系统各项性能指标是否合格的过程。

三、性能测试的分类

基于代码的性能测试(关注点是函数或方法执行的效率)
基于协议的性能测试(关注服务器的性能)
客户端的性能测试(页面或者客户端的响应时间)

服务端测试的分类

  1. 压力测试:在一定的软硬件、网络条件下,模拟用户高并发(峰值负载),持续一段时间,检测系统的各项性能指标,关注峰值下的系统的性能表现(秒杀、团购、抢票)
    目的:监测被测系统在峰值下的运行情况,给最坏情况(系统崩溃)设计预案 场景模型:门型场景,大量线程同时开始,经过一段时间后,又同时结束

  2. 负载测试:在一定的软硬件、网络条件下,通过改变负载的方式,监测系统的各项性能指标,得到系统在正常工作情况下,系统的最大用户数、最佳用户数,定位系统的瓶颈,判断区间的标准:

    • 有没有报错
    • tps下降
    • 响应时间变长
      在这里插入图片描述
  3. 配置测试:改变软硬件配置(架构配置、参数配置),观测不同配置条件下的性能状态 基准测试:在一定的软硬件、网络条件下,模拟单用户操作系统,检测系统各项性能指标。为后面深入的性能测试做一个数据对比。

  4. 并发测试:测试同一模块、同一应用在高并发的情况下,接口工作是否正常。目的是主要检查应用或者接口在多用户情况下,是否存在缺陷(比如死锁等)

同一时间发起请求的用户数

  • 广义并发:
  • 狭义并发:
  1. 容量测试:在一定的软硬件、网络条件下,改变数据库的容量,模拟多用户,监测各项性能指标的过程。寻找数据容量的极限值
  2. 稳定性测试:主要强调长时间、正常负载情况下,观测系统各项指标的稳定性,不会出现致命的问题。7*24小时。8小时、24小时、48小时。目的是检测系统长时间运行,系统的稳定性、是否有异常表现(宕机、出现致命问题等)

四、性能测试使用

  • 上新系统:用户场景(大量用户、同时使用、某个时间段内使用)适合用基准测试、负载测试、压力测试、容量测试
  • 扩容:分析了历史系统自身的性能标新,适当的扩容。基准测试、负载测试、压力测试、容量测试
  • 调优:针对以上线的系统越来越慢,对系统进行优化配置,提升性能表现。基准测试、配置测试
  • 修复:解决线上系统的并发死锁、内存泄漏等问题。并发测试
  • 秒杀、团购:基准测试、负载测试、压力测试

性能测试的介入时机:一般是在功能、接口测试都已经完成之后再来做性能测试。

五、性能测试的指标

性能指标:

  • 响应时间:用户发出请求到服务器处理完成请求返回给客户端的这段时间
  • 吞吐量:网络中每秒传输的事务数,衡量系统的业务处理能力。
    • 1、没有网络瓶颈:tps 数值 = 吞吐量数值
    • 2、如果网络有瓶颈: tps 数值 != 吞吐量数值
  • 吞吐率:每秒钟能通过多少kb数据
  • TPS:每秒事务数。
  • QPS:每秒请求数
  • 资源利用率:cpu、内存、网络、磁盘读写IO。
    • 一般资源的利用率不高于70%-80%,如果某项高于这个值,则可能是性能瓶颈
    • IO:

:

  • 错误率:系统在负载情况下,失败请求的概率。
    • 错误率=(失败请求数/总请求数)*100。
    • 和功能测试的错误相区别,在性能测试中,所谓的错误一般是指由系统超时引起的错误,而不是指功能错误。不同的系统错误容错率不同。普通的业务系统,错误率不超过万分之一就可以了,有的大型系统,亿分之一。

常用专业术语

  • 集合点:大量进程统一开始的地方
  • 关联 :
  • 检查点:
  • 断言 :
  • 用户数:在线用户数,并发用户数,系统用户数
  • PV:页面访问量。客户端向服务器请求的数量,通常是作为网站系统的处理能力的衡量标准
  • UV:独立用户访问量,根据用户数量来进行统计,访问系统一次算一个UV

六、性能测试的流程

1. 性能测试需求分析

  • 弄清楚本次性能测试的需求,性能测试的目的是什么,明确后续性能的要点
  • 主要需求有几种:新系统的能力验证、历史系统(明确的客户需求)、找出系统的性能瓶颈、稳定性验证(强度测试)

2. 了解系统架构

  • 在环境搭建阶段,了解项目的部署
  • 在性能测试分析阶段,要通过不同的系统架构去设计相应的测试模型(真实模拟用户实际操作场景)
  • 在性能测试定位和调优阶段,更要深入这些技术细节才能发现具体问题的位置

3. 分析性能测试点(场景设计)

场景选择有哪些原则

  • 使用频率高的业务
  • 关键程度非常高的业务
  • 资源占用非常严重的业务

4. 测试工具选型

开源工具
商业工具
自研工具

5. 测试计划

  • 简介
  • 性能测试的需求
  • 测试环境
  • 数据准备
  • 测试工具
  • 测试策略
  • 人力和时间安排

6. 测试环境搭建

  • 主要保证测试环境与生产环境一致

    • 硬件环境(服务器、网络)机器数与请求数按比例一致
    • 软件环境(系统版本、软件版本)
    • 使用场景的一致性

7. 测试执行

  • 准备测试数据
  • 使用测试工具实现测试操作
  • 根据测试策略,使用不同的虚拟用户和测试组合来进行测试
  • 监控系统资源利用率
    重复3,4步,直到找到性能问题

8. 测试结果分析,瓶颈定位及性能调优

  • 调优需要开发、运维工程师参与和主导
  • 反复验证性能是否有提升
  • 性能调优的顺序,从易到难
    • 硬件问题
    • 网络问题
    • 应用服务器、数据库的配置问题
    • 源码、数据库脚本问题
    • 系统架构问题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值