性能测试计划怎么写?

news2024/9/27 21:27:25

一.简介

简介部分就不用过多描述了,无非是项目的背景,进行此次性能测试的原因,以及性能测试覆盖的范围等等,几乎所有项目文档都在开端对项目进行简单的阐述。

二.性能测试需求

寻找的被测试对象和压力点

要测试的对象不是凭空想象出来的,而是经过分析与系统数据收集得到的。下面取几个典型的压力点

登录:对于一般的系统来说,登录是用户操作系统的前提,如果用户根本就登录不了,那么其它功能将毫无用处。例如玩游戏,开新服的时候,玩家挤破了脑袋只为登录。

查询:查询一般比较消耗系统和数据库资源。搜索引擎的查询功能就是典型,如果你在输入框内输入内容,很久就得不到结果。我想被称为“互联网入口”的搜索引擎就不会存在。

交易:对于一些电子商务系统来说,交易过程的性能要求是很高的,如果交易过程消耗用户很长时间的话。我宁愿去超市买东西了。当然,除了交易速度外,对交易的成功率要求也是非常高的。不然,造成的损失也是不可估量的。

被测的系统应该是最重要的最基本的功能,也是用户使用最频繁的功能。

一般的性能要求包括:

系统容量:系统最大容纳多少个用户注册。

访问数:同时访问系统的用户数。

并发数:一个操作同时执行的并发数目,一个系统中应该有不同操作的并发数的组合(一般是有权限进行操作的用户)。

系统的最大用户数与最佳用户数:系统在承受的最大并发用户数量,系统在最佳状态下承受的并发用户数据。

响应时间:用户提交一个操作到得到响应的时间间隔。

吞吐率:系统每秒钟处理的TPS

  性能测试关键的一个因素就是压力,性能是在系统设计满足的最大压力下的性能。并发数要不小于系统正常运行的峰值,数据总量不小于系统正常运行3个月的数据量。

  在描述并发用户数目时,总是会带有相应的时间段限制。系统的性能指标实质上应当使用单位时间内系统处理请求的个数以及请求响应时间描述。单位时间内能处理的请求个数就是系统的业务吞吐量。虚拟并发用户的数量可以使用如下的公式换算: (真实用户数×每个真实用户请求数)/(总请求响应时间+真实用户总思考时间)=(虚拟用户数×每用户请求个数)/(总请求响应时间+虚拟用户总思考时间)=吞吐量。

三.测试环境

这里的测试环境主要指的软件硬件环境和网络环境。

  笔者认为性能测试最好在一个独立的环境内进行,这样不会受到外界的干扰,能够保证测试的数据是独立有效的。如果现在你对某个已经上线的网站进行压力测试,那么你得到的数据不是独立的,因为你在做压力测试的时候,其它散户也在访问系统。

软件环境:

  这里的软件环境主要指项目运行的环境,比如采用什么样的操作系统、中间件、和数据库。

硬件环境:

  这里的硬件环境除了主要包括主机内部部件,cpu、内存、磁盘以及主板、网卡等,传输介质和路由器也应该考虑在内,

网络环境:

  网络环境除了考虑测试机与系统服务器在一个局域网中进行,还应该保证这个网络的独立性。如果在性能测试的过程中,其它机子也在消耗着路由器资源。那么路由器也会影响到数据库的传输速度。

四.数据准备

  在很多时候,我们是要准备测试数据的,例如系统不允许相同用户的重复登录,那么必须要生成合法的用户数据。有时要对系统进行查询测试,只有在系统有一定数据量进才能验证出系统的真实性能。一个数据库中有两条数据和有两千万条数据,同样一条查询操作,对系统造成的压力是完全不一样的。

系统所需数据的分析可以参考以下方式:

  历史数据分析有助于数据量级的确定。从历史数据入手,找出高峰期数据量。

  从其他相似或者相同系统入手,进行数据分析,找出高峰期数据量。

  无历史或者相关系统可以参考的时候,就要对系统的性能数据进行估算,包含系统容量,并发数等数据,估算以后给相关人员进行评审或者修订以后,按照大家同意的性能指标进行测试。

…………

  测试数据最好和真实数据相同,如果能够获得真实系统运行3个月的数据,我们就可以在此基础上进行性能测试。

  关于数据的生成,我们可以用一个工具完成,如数据库数据生成工具,大小文件生成工具等。

五.测试工具

  前面已经介绍如何分析需求,需求确定下来之后,我们可以考虑引入什么样的工具适合性能需求。

  当然,在引入工具的时候除了考虑可以是否满足需求,还应该考虑工具的成本,这不单指工具的购买成本,还有测试人员对工具的学习成本。

  关于测试工具的选择,后面会单独有一章节介绍,这里就不细说了。

  如果你选择的性能测试工具不是足够的强大的话,你可能还需要其它的辅助的工具。如果jmeter利用badboy来录制脚本,更能提高脚本开发效率。在压力测试的过程中也可能需要性能计数器来记录软硬件的性能。如监控服务器cpu、内存的计数器,记录中间件日志的监控工具,监控数据库性能的监控工具等。

六.测试策略

  对于一个特定的业务系统,用户一般会分散在一天的各个时间段进行访问。在不同的时间段中,用户使用业务系统的频率不同,而系统的繁忙程度也不同。在一些特定的条件下,可能出现短时间内用户集中访问某个业务系统的情况。例如对于公文处理子系统而言,可能就存在短时间内大量用户查看并办理某条公文的情况。 在进行性能测试时,应当使用“考虑最坏情况的原则”。也就是应当在用户使用业务系统最频繁、对系统造成最大压力的情况下对系统的功能进行测试,判断各功能和页面是否能够满足性能的要求,系统的响应时间是否过长。

  另一方面,系统性能的验证必须做到“覆盖全面”。虽然系统中各个功能的使用频率并不相同,一些功能的使用频率相对于其他功能来说比较低,但是在进行性能测试和优化时,不能忽略这些功能,编制测试用例时也不能仅仅选择最常用功能。例如可能所有的用户都会访问我的通知列表,但是一般只有5%的用户会使用通过系统设置模块查找某个用户的信息;但是在测试时,我们并不能因为查看用户信息功能的使用频率相对较少,而忽略掉这项功能的测试。所以,在这里进行系统性能测试时,对于不同业务,用户的访问比例应该做一个合理分配。

  在测试策略上,我们还应该考虑,同一个系统在不同硬件环境下的性能表现。从而让系统满足需求的情况下,硬件配置也能达到一个最佳的状态。过份的增加硬件来满足需求也是一种浪费。再说增加硬件设备不是能解决所有性能问题的。

七.人力与时间安排

  最后一条,就是要根据项目的进度要求以及规模,来进行人力与时间的安排。对于大型的性能测试,项目前期的需求调研,环境的部署,工具的选购或开发,人员对测试工具的学习与使用,性能测试的后进行,后期数据的分析与调优。都是需要人员安排的。有可以需要专业的,系统工程师、数据库工程师、软件开发工程师、网络工程师以及性能测试工程师的共同参与配合完成。不是一个性能测试人员就可以搞定的。

  笔者听说,最牛x的性能测试,需要几个国家的十几个城市的性能测试团队同步进行。前期的准备工作就需要几个月的时间。如何把控性能测试的同步进行。后期测试数据的汇总与分析。是一个非常复杂的过程。这个例子有待考证,我想说明的是,对于大项目的性能测试,人员与时间安排也至关重要。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

SD-WAN 跨国专线主要应用在哪些地方?

随着企业需求的不断变化和发展,传统的WAN技术已无法完全满足现代企业的需求。因此,SD-WAN跨国专线逐渐成为企业连接全球业务的重要选择。SD-WAN跨国专线通过SD-WAN技术,实现跨国业务的高效专线连接,极大地提升了企业的全球运营能力…

泡泡玛特2024半年报发布:收入利润高增长 各项指标超预期

泡泡玛特发布2024上半年业绩报告。报告显示,2024年上半年泡泡玛特国际集团实现营收45.6亿元(人民币,下同),同比增长62.0%,经调整后净利10.2亿元,同比增长90.1%。国内地市场差异化渠道定位及精细化运营驱动其业务实现营…

分类预测|基于Transformer-LSTM的数据分类预测Matlab程序 多特征输入多类别输出

分类预测|基于Transformer-LSTM的数据分类预测Matlab程序 多特征输入多类别输出 文章目录 一、Transformer-LSTM基本原理1. 模型原理TransformerLSTM 2. 流程步骤1. 数据预处理2. Transformer编码器3. LSTM层4. 分类层5. 模型训练与评估 3. 优势与应用 二、实验结果三、核心代码…

【原创教程】电气电工14:电磁阀知识一篇搞定

电气电工这些知识点,我们描述的比较细,虽然看起来比较简单,但是它是后面我们技能提升的基础,如果我们后面学电气工程师相关知识,这些都属于基本功。 接着我们来看一下电磁阀。 电磁阀是一种利用电磁原理控制流体介质方向、流量、压力等参数的控制元件。它是将电信号转化…

安装Ubuntu

1.看到如下直接回车(安装) 2.选择语言 3.有的版本会叫你更新(1.更新2.不用继续安装3.返回) 4.键盘选择(一般默认即可回车) 5.Ubuntu版本选择 6.网路配置 7.代理服务器配置(不懂回车即可&#xf…

C语言教程-13_1-初识指针

title: C语言教程-13_1-初识指针 tags: [C] categories: C语言教程 description: 接触C语言的灵魂-指针 概要: 简要讲解内存地址与内存模型简单介绍C语言的指针这一数据类型掌握指针相关最基本的两种互逆运算 前置知识: 理解能力和想象能力耐心和实验精神数组与函数的知识 …

ES(Elasticsearch)可视化界面-浏览器插件

安装 支持Micrsoft Edge、谷歌、火狐浏览器 此处我以IE为例 使用 extension://aonamamifdfigcflbeokdndfappnmogo/es-client/index.html?td_channelidchrome#/more/about 输入相关连接信息即可 rest client语法 和kibana的开发者工具查询方式一致,可以参考我另一篇文章Kiba…

Python生成指定数量的随机XML文件

我的需求是随机生成18位数字的XML文件名,其中前12位数字是随机数,后6位是时间信息 其中XML中写入CSN的tag值,代码如下 import os import random import time import xml.etree.ElementTree as ETdef generate_random_filename():random_part…

光耦合器的简要揭秘

光耦合器,也称为光隔离器或光电耦合器,是电子器件中必不可少的元件,它提供了一种在电路隔离部分之间传输电信号的方法。这种隔离对于保护系统的敏感部分免受高压尖峰或电气噪声的影响至关重要,这使得光耦合器在许多应用中成为一种…

Linux内核编程(十四)IIC总线驱动FT5X06触摸屏

本文目录 前述:一、IIC子系统框架二、I2C设备驱动层1. i2c_client编写(C语言版-旧内核)2. i2c_client编写(设备树版-新内核) 前述: 对于IIC的基础知识,这里不做过多的介绍,详细情况…

智能地理信息系统平台应该是什么样子?

现在GIS平台除了三维GIS属于重大突破,这些年基本上都属于蹭热点概念,并在这些热点概念之间左右逢源,究其本质,还是在于没有把握好GIS的立足之本与用户之间的巨大鸿沟。回归到题目上,智能地理信息系统平台,从…

钣金展开计算工具【机械设计工具集】

一款非常实用的计算器工具,它可以帮助用户计算直角弯曲展开长度的工具,无需直角弯曲展开长度计算公式,选择对应的图形,输入已知的数据、查询α系数并输入,就可以快速计算出长度了! 方便钣金件下料长度的计算…

Uniapp:WebSocket 重连之后累加触发 uni.onSocketOpen()

省流 不要用 uni.xxx 那一套,用 socketTask await uni.connectSocket({}) 的 socketTask 去控制 业务逻辑描述 第一次进入应用主页,连接 WebSocket手机熄屏之后,断开当前连接的 WebSocket手机亮屏之后,再次进入应用后&#x…

SpringBoot异常处理原理分析

springboot默认机制 错误处理的自动配置都在ErrorMvcAutoConfiguration中,两大核心机制: SpringBoot 会自适应处理错误,响应页面或JSON数据 SpringMVC的错误处理机制依然保留,MVC处理不了,才会交给boot进行处理 发生…

《黑神话:悟空》一只横扫全球的中国“猴子”,这里也有!

这个夏天,除了火辣辣的太阳让人燥热难耐,还有一只横空出世的“猴子”让众多网友热血沸腾——8月20日,筹谋7年的首款国产现象级3A游戏大作《黑神话:悟空》,准时登录各大平台,期待已久的玩家们一饱“猴瘾”。…

2024年第四届《英语世界》杯全国大学生翻译大赛

2024年第四届《英语世界》杯全国大学生翻译大赛 第一场下周日开考! 一、参赛福利: 1、报名即可获得大赛专属题库、《英语世界》数字刊阅读权限、《英语世界》杯系列赛事公开课珍贵资料; 2、开展线上公开课邀请名师讲解; 3、获…

linux之网络子系统-MAC帧、数据报、段 的头部信息

一、MAC帧 格式 MAC帧是属于链路层,网卡发送数据的格式。 MAC帧主要有两种格式,一种是以太网V2标准,一种是IEEE 802.3,常用的是前者。 DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节&#…

突破速度障碍:探索25MBd数字光耦合器在工业自动化中的作用

在快节奏的工业自动化世界中,对能够跟上高速运行同时保持可靠性和安全性的组件的需求至关重要。这些系统中最关键的组件之一是光耦合器,它在机器的不同部分或机器之间传输信号时提供电气隔离。25MBd数字光耦合器的推出代表了该领域的重大进步&#xff0c…

18959 二叉树的之字形遍历

### 思路 1. **输入读取**: - 读取输入字符串,表示完全二叉树的顺序存储结构。 2. **构建二叉树**: - 使用队列构建二叉树,按层次顺序插入节点。 3. **之字形层序遍历**: - 使用双端队列进行层序遍历&…

为何要引入服务注册组件及组件对比

我的后端学习大纲 SpringCloud学习大纲 1.为什么要引入服务注册中心: 1.1.原因说明 1.微服务所在的IP地址和端口号硬编码到订单微服务中,属于硬编码,会存在非常多的问题 如果订单微服务和支付微服务的IP地址或者端口号发生了变化&#xff…