面试官:什么是性能测试计划?(内含干货)

news2024/11/25 23:17:34

引言

在进入今天的内容前, 先想几个问题:

什么是测试计划?

什么是性能测试计划?

在你的性能知识领域中, 你认为性能测试计划应该包含哪些内容?

因为作为企业的金牌面试官, 经过我面试的求职者,没有四位数,至少也有个位数。无论是性能测试的小白还是高级性能测试工程师,几乎都没有认真的或者完整的去实施过性能测试计划。

其实,导致这种现在的原因,无非两种:

1、企业 不太注重 性能测试;

2、测试人员本身的能力不足。

看到这里, 你是不是会说, 你看:不是我不专业,不是我不想写专业的性能测试计划,只是我的企业对性能测试计划的要求不高。

作为一名性能测试工程师,你的专业度,一定是高于企业里的其他人,所以,你要做的,就是把你的专业,无限的放大,来完善企业中的空白。

切勿有这种想法:反正BOSS不专业, 我随便写几段话糊弄过去就行了。同时,也为了能让你在与面试官的聊天中,体现你的专业,让面试官"折服"你,我写了这篇文章,希望你能学以致用。

什么是性能测试计划

说道什么是性能测试计划, 我们就不得不提,什么是测试计划。引用官方文档:

描述了要进行的测试活动的范围、方法、资源和进度的文档;

是对整个信息系统应用软件组装测试和确认测试;

它确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险;

测试计划可以有效预防计划的风险,保障计划的顺利实施。

在项目的前期,测试计划是必须要做的,也是一名软件测试管理者必须具备的能力。一份完整的测试计划,可以:

为测试各项活动制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果;

确定测试所需要的时间和资源,以保证其可获得性、有效;

确立每个测试阶段测试完成以及测试成功的标准、要实现的目标;

识别出测试活动中各种风险,并消除可能存在的风险,降低由不可能消除的风险所带来的损失。

你看, 测试计划的优势这么多:

向上:领导做宏观调控;

向下:测试人员了解项目不同阶段的测试任务。

你还觉得测试计划的不重要吗?

知道了测试计划,那我们再来聊一聊性能测试计划。简单的一句话概括:就是针对项目的性能制定的测试计划。

测试计划包含整体测试的各个阶段:接口、功能、性能、自动化、集成等……

而性能测试计划,就是针对性能测试的计划设定,理解了性能测试计划,那:

性能测试计划包含哪些内容?

以及如何编写有效的性能测试计划呢?

如何让你的性能测试计划符合实际的项目呢?

带着这些疑问,我们来逐一聊一聊。

性能测试计划包含的内容

说到性能测试计划, 我先上一个图:

看到这份性能测试计划, 是不是感觉似曾相识。是不是与你编写的性能测试计划的方案一样?是不是觉得,这些内容,已经足够了?

如果你是这样想,那么,还请你思考以下几个问题:

如果没有性能目标,你能否进行性能测试;

如果没有性能场景和性能指标,你能否编写性能脚本;

如果没有系统架构图, 你能否快速的了解系统架构逻辑;

如果没有部署监控,你能否快速的定位及分析性能瓶颈。

你看,这些都是在实际的性能测试中需要的,那肯定就需要在性能测试计划中列出来。否则, 如何进行脚本设计,如何进行监控部署,如何发现问题,分析性能瓶颈呢?

按照上面的思路, 我再提供一张性能测试计划图,来对比一下:

通过这两张图的对比,可以发现,第二张图更完整,不管向上对老板,向下对员工,都是一目了然。所以,你可以发现,一份好的性能测试计划,即使给外行人看,也能知道要目的和要做的内容。

这时候,你可能有疑问,我这份性能测试计划这么多内容,那要写多长时间呢?每一项的内容,又要如何来写呢?如何让一个性能测试小白,快速掌握性能测试计划的编写要领呢?

这里,我就逐一进行拆解。

背景

先描述项目背景, 再阐述本次项目性能测试背景。

性能目标

结合性能测试的场景,设定测试目标,例如:

根据基准场景:测试某接口的最大容量;

根据稳定性场景:测试某接口的最大运行时间。

压测范围

根据系统的主流程,筛选需要压测的接口,如:

计算接口;

同步接口;

其他主要接口。

启停准则

这里主要包含:

启动准则:完事具备,需要开始进行性能测试;

结束准则:所有测试任务都完成,结束测试;

暂停准则:在测试过程中,因测试环境受到干扰无法进行测试,导致暂停测试;

再启动准则:解决完测试过程中的问题,可以继续进行测试。

性能指标

包含内容,如下:

目标接口;

目标TPS;

TPS标准方差;

响应时间;

响应时间标注方差。

系统架构图

系统逻辑架构图;

系统部署架构图。

压测前准备

主要是硬件资源,例如:

服务器台数:根据实际项目需要进行申请;

服务器用途:数据库、缓存、集群、应用服务、监控服务部署等等;

服务器配置:需要根据上线的服务器配置一样。

工具准备

压测工具:实际压测的工具,例如:Jmeter、Ladrunner、Lcust等;

监控工具:Prmethues、Grafana、Kafka、Lgstash、Spring Bt Admin等。

数据准备

测试脚本数据的准备:

读取csv文件的数据;

直接写入数据库的数据。

性能设计

包含两部分,即:

性能测试策略:连续、递增策略;

业务场景设计:4种场景,如:基准场景、容量场景、稳定性场景、异常场景。

监控设计

包含两部分,如下:

全局监控设计:如 Prmetheus、Grafana、Spring Bt Admin等;

定向监控设计:对具体的应用、数据库等进行监控分析,如 jstack、mysqlreprt等。

项目组织架构

参与性能测试的项目组成员:

PM

架构师

开发工程师

性能测试工程师

性能脚本编写工程师:性能测试分析工程师、运维

成果输出

包含三部分内容,即

过程性输出:性能测试脚本、性能缺陷列表;

性能测试报告;

性能调优报告。

项目风险分析

主要通过以下几点进行分析:

业务层的需求是否明确;

环境问题;

数据问题;

业务模型;

人员问题等等。

你看,我把性能测试计划每一项的内容进行拆解, 这样是不是就通俗易懂了。但是这个颗粒度,我觉得作为一名测试经验不够丰富的性能工程师来说,还是有些迷茫。

在下篇文章中,我会把上面的内容再进行拆分并落地,让你彻底掌握编写性能测试计划的方法。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/345952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文搞懂:JS严格模式“use strict”

什么是JS的严格模式 JS严格模式概念是在ES5中引入的,在此模式下,JS对语法的要求会变的严格,某些不太严谨的代码在严格模式下将不能运行。 如何启用严格模式 只需要JS代码的起始添加 "use strict"即可。如: "use…

Spring Boot邮件发送(powernode CD2207)(内含教训视频+源代码)

Spring Boot邮件发送(powernode CD2207)(内含教训视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87452056 目录Spring Boot邮件发送(powernode CD2207&…

图解LeetCode——1233. 删除子文件夹(难道:中等)

一、题目 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] …

Redis学习【4】之简单动态字符串

文章目录一 简单动态字符串 SDS1.1 SDS简介1.2 SDS结构1.3 SDS优势1.3.1 防止”字符串长度获取”性能瓶颈1.3.2 保障二进制安全1.3.3 减少内存再分配次数1.3.4 兼容C函数1.4 常用的 SDS 操作函数一 简单动态字符串 SDS 1.1 SDS简介 无论是 Redis 的 Key 还是 Value&#xff0…

《系统架构设计》-01-架构和架构师概述

文章目录1. 架构的基本定义1.1 架构组成理论1.1.1 系统元素1)概念2)静态结构和动态结构1.1.2 基本系统属性1.1.3 设计和发展原则1.2 架构的决策理论1.2.1 统一软件过程(Rational Unified Process,统一软件过程)1.2.2 决…

《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)

1.简介 上一篇文章中,从TestNg的特点我们知道支持变量,那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试。那么如何实现同时启动不同的浏览器对脚本进行测试,且听我娓娓道来。 2.项目实战 2.1创建一个TestNg class 1.首先按…

深入工厂|高精密多层板是如何被智造出来的?

或许有很多人从网络上见过各种教程,告诉你单层板是什么,多层板是什么,他们该如何做出来,但是在具体制造时却全凭想象,今天,就让我们来实地看看,精密的多层板是如何被制造出来的!今天…

大数据---zookeeper集群搭建

zookeeper集群搭建 跳过安装jdk的方法就是找到安装jdk环境的虚拟机克隆 克隆之后的虚拟机根据台数直接修改ip地址,重新配置免密登录,确保每台机器能够互相连接,然后安装zookeeper 文章目录zookeeper集群搭建前期工作服务器划分修改hostname设…

【java】Spring Boot -- Spring AOP原理及简单实现

文章目录一、AOP基本概念1.1、Filter、Interceptor、AOP1.2、AOP中的一些概念1).通知(Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理;通知类型,主要有以下几种:2).连接点(Jo…

Acwing---1246. 等差数列

等差数列1.题目2.基本思想3.代码实现1.题目 数学老师给小明出了一道等差数列求和的题目。 但是粗心的小明忘记了一部分的数列,只记得其中 N个整数。 现在给出这 N个整数,小明想知道包含这 N 个整数的最短的等差数列有几项? 输入格式 输入…

ChatGPT 接入微信,最强聊天机器人来了

最近的 ChatGPT 又再次火热起来了,各种周边工具也是层出不穷,今天我们就一起来做一个基于 ChatGPT 的微信聊天机器人,来感受 AI 世界的快乐吧~ 我们先来看几个我比较关心的问题吧 Python 语言算法 什么是 ChatGPT 人工智能会统治世界吗&a…

【Kubernetes】【二】环境搭建 环境初始化

本章节主要介绍如何搭建kubernetes的集群环境 环境规划 集群类型 kubernetes集群大体上分为两类:一主多从和多主多从。 一主多从:一台Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境多主…

带你玩转Jetson之Deepstream简明教程(四)DeepstreamApp如何使用以及用于工程验证。

1.DeepstreamApp是什么? 如果你安装完毕deepstream整体框架,会在你的系统执行目录内有可执行文件,文件名字是deepstream-app。这是一个可执行脚本文件,通过deepstream框架中的代码在安装的时候编译后install到系统根目录内。 此脚…

家政服务小程序实战教程11-首页跳转到分类页面

小程序的分类页面,通常会以侧边栏导航显示内容,我们使用了侧边选项卡和数据列表组件实现了分类展示的功能 还有个需求是从首页点击某个分类的时候,跳转到分类页时候需要选中对应的类别 01 增加页面参数 页面如果跳转时候需要这种接收参数并实…

JAVA和Spring的SPI机制讲解

文章目录1 SPI机制讲解1.1 引言1.2 Java SPI实现1.2.1 示例说明1.2.2 相关测试1.2.3 源码分析1.3 Spring SPI1.3.1 Spring 示例1.3.2 相关测试类1.3.3 源码分析1 SPI机制讲解 1.1 引言 SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启…

力扣337题 打家劫舍Ⅲ Java语言版

/**每个节点都用一个长度为2的数组来表示其状态,其中dp[0]表示偷该节点所得到的最多钱币,dp[1]表示不偷该节点所得到的最多钱币*/ class Solution {public int rob(TreeNode root) {int[] robRoot robTree(root);return Math.max(robRoot[0],robRoot[1]);}public int[] robTre…

rtp协议

RTP协议 在实时音视频通话中,我们通常使用 UDP 作为传输层协议,使用 RTP 协议包荷载音视频数据,RTP(Real-time Transport Protocol)是一种在 Internet 上传输多媒体数据的应用层协议,它通常建立在 UDP 之上…

RabbitMQ学习(五):RabbitMQ持久化

一、持久化概念在上一章内容中我们已经看到了如何处理任务不丢失的情况,但是如何保障当 RabbitMQ 服务停掉后消 息生产者发送过来的消息不丢失呢?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它将忽视队列 和消息,除非告知它不…

Python 考试练习题4

1. 将元组 (1,2,3) 和集合 {4,5,6} 合并成一个列表。 tup(1,2,3) set{4,5,6} listlist(tup)list(set) print(list) 2. 在列表 [1,2,3,4,5,6] 首尾分别添加整型元素 7 和 0。 #方法1 list[1,2,3,4,5,6] list.insert(0,7) #list.append(0) 这两种也可以 #list.insert(len(list…

PowerJob的server启动都经历了哪些?代码不多也很简单,咱们来逐一理解。

这是一篇让你受益匪浅的文章,点个关注交流一下吧~ PowerJob如何使用,官方文档已经说的很详细了,即使没学过计算机的人,按照那上面的步骤来也是可以搭建出一个可以使用的例子来,所以今天就不在这里重复前人的工作&#…