性能测试~性能测试方案

性能测试~性能测试方案1 背景 1 1 项目背景明确该性能测试的项目背景 1 2 性能目标性能目标都会影响项目的整个过程 对目标的把握将决定一个性能项目的走向测试测目标必须明确取生产峰值流量作为基线 目标一般是峰值的 xxx 倍 业务的流量预期 2 测试范围明确需要测试的特性业务的核心链路业务的热点数据的访问链路 3 准则 3 1 启动准则确定系统逻辑架构和部署架构和生产一致 确定基础数据和生产一致或按模型缩放 确定业务模型可以模拟生产真实业务测试计划 方案评审完毕环境准备完毕 功能验

1. 背景

1.1. 项目背景

明确该性能测试的项目背景

1.2. 性能目标

  • 取生产峰值流量作为基线(目标一般是峰值的xxx倍)
  • 业务的流量预期

2. 测试范围

明确需要测试的特性

  • 业务的核心链路
  • 业务的热点数据的访问链路

3. 准则

3.1. 启动准则

  • 确定系统逻辑架构和部署架构和生产一致。
  • 确定基础数据和生产一致或按模型缩放。
  • 确定业务模型可以模拟生产真实业务
  • 测试计划、方案评审完毕
  • 环境准备完毕(功能验证通过/ 各个组件基础参数梳理并配置正确/ 网络配置正确,链接通畅/ 压力机准备okay)

3.2. 结束准则

  • 达到项目要求的性能需求指标
  • 关键性能瓶颈已经解决(包括参数的调优和bugfix)
  • 完成性能测试报告和性能调优报告

3.3. 暂停/再启动准则

3.3.1. 暂停准则

  • 系统环境变化:举例:系统主机硬件损坏、网络传输时间超长、压力发生器出现损坏、系统主机因别的原因需升级暂停等。
  • 测试环境受到干扰,比如服务器被临时征用,或服务器的其他使用会对测试结果造成干扰。
  • 需要调整测试环境资源,如操作系统、数据库参数等。
  • 该测试机型无法达到规划指标要求。
  • 出现测试风险中列出的问题
  • 发现问题需要解决

3.3.2. 再启动准则

  • 测试中发现问题得以解决。
  • 测试环境恢复正常。
  • 测试风险中出现的问题已解决。
  • 环境调整完毕

4. 业务模型和性能指标

4.1. 业务模型

还原生产的流量模型(eg: xx%users调用xx接口)

4.2. 性能指标

明确系统需要承受的tps和响应时长RT指标

5. 系统架构图

5.1. 系统技术栈

5.2. 系统逻辑架构图

5.3. 系统部署架构

  • 画部署架构图是为了让我们知道有多少节点、多少机器。在执行容量场景时,要有一个概念,就是这样的部署架构最大应该可以支持多少的容量上限;
  • 测试过程中有流量异常波动的时候,查看相干链路的服务监控进一步定位锁定问题
  • 另外就是尽可能排查一些影响因素(带宽之类的)

6. 性能实施前提条件

6.1. 硬件环境

明确环境的硬件配置

6.2. 工具准备

6.2.1. 测试工具

现在常用的开源工具一般是 Jmter + InfluxDB + Grafana

6.2.2. 监控工具

  • 服务器资源粒度(云服务器一般自带/nmon自建)
  • 组件流量(Promethues+Grafana)
  • 应用监控(jvm等监控)

6.3. 数据准备

  • 生产环境的真实数据分布(导入生产流量 or 模拟生产流量)
  • 参数化数据一定要使用基础数据来覆盖真实用户

7. 性能设计

7.1. 场景执行策略

模拟生产场景(一般是连续递增执行)

7.2. 业务场景

7.2.1. 基准场景

  • 在基准场景中,我们要通过递增连续的场景做到最大 TPS。也就是说在基准场景中,我们要把单接口或单业务压到最大 TPS,然后来分析单接口或单业务的瓶颈点在哪里
  • 先判断当前单接口或单业务的最大 TPS,有没有超过目标 TPS。如果超过,并且响应时间也在业务可接受的范围之内,那就不用调优。如果没有超过,那必须要做调优
  • 性能执行的第一阶段目标就是把资源用光,第二阶段的目标是将系统优化到满足业务容量。要知道,任何一个系统要调优都是无止境的,而目标是要保证系统的正常运行

7.2.2. 容量场景

在容量场景中,我们还是要继续秉承“连续、递增”的执行思路,最重要的是,要实现我们前面提到的业务模型,来真实模拟线上的业务场景

7.2.3. 稳定性场景

  • 稳定性场景的时长(根据生产的运维巡检周期来计算eg:文件的归档周期等)
  • 在执行稳定性场景时,可以用最大的稳定 TPS 来运行,只要覆盖了运维周期之内的业务容量即可

7.2.4. 异常场景

主机/网卡/应用/容器/pod 的异常(系统的高可用)

7.3. 监控设计

7.3.1. 全局监控

一般使用 Prometheus/Grafana/Spring Boot Admin/SkyWalking/Weave Scope/ELK/EFK 就可以实现具有全局视角的第一层监控

7.3.2. 定向监控

8. 测试结果

8.1. 过程性输出

  • 测试脚本
  • 场景执行结果
  • 监控结果
  • 问题记录

8.2. 性能测试报告

  • 本次性能测试的结论(当前系统可以支持多大流量)
  • 提供生产运维的建议,主要是只关键性能参数的配置建议(线程池/队列/超时等)

8.3. 性能调优报告

调优报告中一定要记录下每一个性能问题的问题现象、分析过程、解决方案和解决效果

8.4. 风险分析

罗列该性能项目实施的场景风险

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200094.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:33
下一篇 2026年3月20日 上午11:33


相关推荐

  • html怎么隐藏播放器_css遮罩

    html怎么隐藏播放器_css遮罩<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><metahttp-equiv=”X-UA-Compatible”content=”ie=edge”><title>视.

    2025年5月26日
    12
  • 金三银四,教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了「建议收藏」

    金三银四,教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了「建议收藏」最近一段时间不是金三银四嘛,有不少同学通过CSDN私信的方式把简历发给我,要我给出一些建议。看多了以后,我发现,有些同学根本不知道怎么写简历,格式乱七八糟,填写的个人经历就像是记流水账一样,完全勾不起我的任何兴趣。那,招聘方应该比我更苛刻,所以这样的简历投递出去,石沉大海的几率很大啊。2014年,我从苏州回到了洛阳,那是我最后一次投简历,现在还在招聘网站上挂着——公开的。嗯,在这么多年的时间里,并没有招聘方和猎头通过这份挂出去的简历给我打电话,虽然我的联系方式一直没变。那只能说明一点,我当时写的简历

    2022年5月2日
    37
  • python+opencv图像模板匹配—多模板匹配

    python+opencv图像模板匹配—多模板匹配

    2021年10月6日
    41
  • Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    2021年9月26日
    84
  • 哈佛幸福课–部分笔记

    哈佛幸福课–部分笔记(仅供参考)灵性超越对宇宙的更高目的和意义有一致的信念,知道自己在大计划中的位置,对生活的意义有信念,能塑造行为并提供安慰。2.公平正义3.诚实勇气4.善良人类5.判断

    2022年7月1日
    24
  • 蓝桥杯历年真题及详细解答

    蓝桥杯历年真题及详细解答这里是蓝桥杯历年的题目汇总,后面将会陆续更新将往年真题以及解答发布出来,目前先更新C语言B组的,欢迎各位小伙伴关注我吖,你们的关注就是给我最好的动力!!!蓝桥杯历年省赛真题Java语言A组省赛真题Java语言B组省赛真题C语言A组省赛真题C语言B组省赛真题Java语言A组省赛真题2012第三届JavaA组蓝桥杯省赛真题2013第四届JavaA组蓝桥杯省赛真题2014第五届JavaA组蓝桥杯省赛真题2015第六届JavaA组蓝桥杯省赛真题2016第七届JavaA组蓝.

    2022年7月16日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号