做好性能测试计划的4个步骤!全都是精华!【建议收藏】

2023-11-22 15:30

本文主要是介绍做好性能测试计划的4个步骤!全都是精华!【建议收藏】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何做好一次性能测试计划呢?对于性能测试新手来说,也许你非常熟悉Jmeter的使用,也许你清楚的了解每一个系统参数代表的意义,但是想要完成好一次性能测试任务,并不仅仅是简单的写脚本,加压力,再拿到响应结果和监控数据这么简单。有哪些关键因素需要好好考虑呢?以下是我个人总结的一些关键点,供大家参考。

性能测试其实是一个非常庞大的领域,涉及到很多知识和专业技能。而针对不同的被测系统或被测产品,又有不同的测试方式和侧重点。此文谈及的性能测试是针对互联网后端服务的性能测试。

在业务线上做性能测试,首先以了解业务背景为前提条件,在此基础上,去做一个尽可能完备的测试计划,设计出关键且有效的测试场景,用最少的测试执行来回答被测系统性能如何这个问题。我总结了一些个人在做性能测试计划方面的心得和体会,希望能够对大家在做性能测试计划的时候有所帮助。


在做性能测试计划的时候,我们首先需要充分思考这几个问题:

  1. 我们需要知道系统的哪些性能情况?
  2. 我们要采用哪种类型的性能测试,通过哪些测试场景来评估系统的性能情况?
  3. 按照我们制定的性能测试计划,最终拿到的测试结果能不能支持推断出系统性能是否符合业务目标的结论?

一、明确目标

要回答第一个问题,最好的切入点是了解业务目标是什么。

  1. 业务目标的确定:在做性能测试计划前,我们应该向项目组核心成员去了解业务情况,询问项目经理、运营、产品、技术负责人,预期的业务量是多少?未来规划的提升量是多少?在哪些方面有特殊的业务要求,比如哪些场景对响应时间有强要求,是否会有促销手段可能导致线上出现秒杀情况等等。
  2. 性能风险的推测:条件允许的情况下,我们还可以向项目组的每个参与者了解情况:你最担心系统出现的性能问题是什么?为什么会有这样的担心?有时候项目的核心成员并不清楚系统设计的细节,而那些被忽略的细节又常常出其不意的在线上带给我们麻烦。
  3. 明确性能测试目标:整理自己对业务的理解,梳理收集到的业务目标和问题,将业务化的目标转化成明确的性能测试目标。

二、选取方法

关于第二个问题,在我们已知性能测试目标的情况下,应该采用哪种类型的性能测试手段呢?我总结了一下几种主要的性能测试的特点,如下表所示:

在已知这些不同类型性能测试的特点后,我们就能更好的做出选择,采用恰当的方式更高效的达到测试目的。例如:

  • 如果业务目标关心用户操作后多快能收到响应,那么我们会选性能测试(Performance Test)来作为主要测试方法。
  • 如果想要知道用户抢购某商品时出现“挤爆了”提示后会不会影响其他业务,以及出现问题后多久能恢复正常,那么我们可以选择压力测试(Stress Test)
  • 如果想要知道业务不断扩张,用户群体不断增长的情况下,最应该先做哪方面的系统优化准备,那么我们会选择进行容量测试(Capacity Test)。

当然,大多实践的时候,你会发现单一的测试方式并不能回答我们关于被测系统或被测应用的全部问题,我们需要采用几种测试方法共同完成一次性能测试任务。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

三、减小差异

第三个问题,测试结果能不能支持推断线上系统性能是否符合业务目标?这个问题并不是在拿到最终测试结果的时候才应该去思考的。这个问题的思考时机应当前置,并且贯穿整个性能测试计划设计以及测试执行过程中。为了让我们的测试结果更具有准确性和权威性,在做性能测试计划的时候,应该从两方面考虑:

  1. 测试环境和生产环境尽可能的保持一致,包括硬件条件和软件配置都尽可能一致,对于达不到一致的方面,要分析差异及存在的影响。
  2. 测试场景中模拟的用户行为,要尽可能贴近真实用户的行为习惯。在设计压测场景时,不能纯粹靠想象去预估用户行为和各个行为的用户比例,我们应当结合已监控到的真实用户行为,合理建立压测模型。在这两点基础之上,得出压测数据后,再结合其他因素来预估线上性能情况。

四、产出计划

想清楚上述问题后,我们再来填充我们的性能测试计划。个人认为一个全面的测试计划,应该包含以下几个部分:

1)性能测试目的

像前文已经提到过的,我们应该明确性能测试的目的,了解被测业务特点和业务目标,并将业务目标转化为明确的性能指标。为了更好的帮助我们理解被测系统,画出被测系统架构图是很必要的,在整个系统架构图中,确定被测系统范围,集中精力到需要关注的性能表现上。

2)性能测试环境

  1. 了解清楚生产环境的各种配置,明确测试环境需要的硬件、软件条件。
  2. 思考是否需要借助其他辅助工具来完成性能测试任务
  3. 充分对比生产环境和测试环境差异,差异说明可以为后续分析和推测线上性能情况提供参考信息。

3)测试场景设计

  1. 了解业务后,选择关键链路,并对不同链路设置优先级
  2. 根据测试场景,做辅助测试数据准备
  3. 监控数据项列举
  4. 测试脚本准备方案和验证方案
  5. 测试场景列表,包含关键项:场景名称、场景描述、并发用户数、用户分布、持续时间等

4)测试执行计划

  1. 性能测试准入条件
  2. 测试执行schedule
  3. 测试执行策略,例如单个场景执行三次,统计平均值
  4. 测试执行完成条件

5)性能测试交付内容

  1. 性能测试结果数据
  2. 性能测试结论,是否达到预期指标,是否能支持业务需求
  3. 性能优化建议

6)风险说明

  1. 排期风险
  2. 技术风险
  3. 资源风险

以上是基于个人的有限性能测试经验总结出的几个关键点,包括做性能测试设计时应该注重的几个关键问题,同时给出了一个性能测试计划里应包含的关键部分。具体实践中,涉及到的问题可能还有很多,设计方案还需要考虑方方面面的因素,但是这些关键要素能帮我们快速思考清楚如何准备当前的性能测试任务。性能测试领域还有很多知识待挖掘,许多经验待总结和分享,希望我的这篇总结对大家能有所帮助。

END今天的分享就到此结束了,点赞关注不迷路~

这篇关于做好性能测试计划的4个步骤!全都是精华!【建议收藏】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/411108

相关文章

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、