系统性能测试流程总结

news2024/11/18 13:33:14

一、测试前期准备

1、确定用户、业务、系统需求(目标)

1)确定客户的需求和期望

在需求分析和文档的支持下,需要对软件系统上的用户业务使用情况进行分析,提出我们所关注的性能测试需求,并告知业务人员。让业务人员来判断我们的性能需求是否满足客户的真实需求。

2)确定实际业务需求

主要确定用户的业务请求分布等:主要业务请求、平均日交易量、年交易量、峰值交易量等等。

3)确定系统需求

这里的主要工作是分析系统的性能需求、确定合理的性能目标。可以从下面几个方面进行考虑:

  • 普通数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间;
  • 大数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间;
  • 未来若干年数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间。 

2、系统类别

分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功。例如:系统类别是B/S结构,需要掌握HTTP协议,java,C#,html等技术。或者是C/S接口,可能要了解操作系统,winsock,com等。

3、系统构成(系统配置基线清单)

硬件设置,操作系统设置是性能测试的制约条件,一般性能测试都是利用测试工具模仿大量的实际用户操作,系统在超负荷情形下运作。不同的系统构成性能测试就会得到不同的结果。  

4、网络拓扑图

便于分析系统的薄弱环节,针对性设置测试方案。以及为后期对性能瓶颈分析做准备。

5、实际网络带宽

便于测试时对带宽做模拟,较为真实的反应测试带宽情况。  10000mbs / 500 = 200kps     

6、测试服务器及测试机配置清单

了解性能测试硬件资源(包括所测服务器,测试机等)。根据实际情况添加设备。

7、系统功能流程图

便于测试人员分析系统哪些模块易出现瓶颈,从而针对性做性能测试。

8、确认测试时间点

二、测试实施

1、制定测试计划

主要任务是规划性能测试所需的测试环境、测试软件、相关技术与测试工具的选择,测试的人员组织,测试目标、测试日程等

2、编写测试方案(性能测试方案大体与测试计划类似,可根据实际情况决定输出工件)

3、设计测试用例

设计测试用例是在了解软件业务流程的基础上。设计测试用例的原则是受最小的影响提供最多的测试信息,设计测试用例的目标是一次尽可能的包含多个测试要素。这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。因为性能测试不同于功能测试的测试用例,尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈。因此对于设计用例至少要考虑到以下3个问题:

  • 业务复杂,功能众多,如何一次尽可能地包含多个测试要素?(场景的创建)
  • 脚本如何开发?
  • 场景数据出来后,如何分析?

4、录制测试脚本 

5、模拟测试场景

6、运行测试

通过性能测试工具运行测试用例。同一环境下做的性能测试得到的测试结果是不准确的,所以在运行这些测试用例的时候,需要用不同的测试环境,不同的机器配置上运行。在执行测试用例时,应掌握以下原则:

  • 测试前,要确认系统的关键参数已经基本配置正确
  • 测试前,要确保测试脚本的业务功能运行正确
  • 测试前,清空所有应用日志,调高错误日志的输出级别(Error级),必要时再每次测试前重启应用服务和数据库应用服务
  • 调整系统参数时,一次只调整一个,不要同时调整多个,并记录调整前后的系统变化
  • 优先测试基线案例(即正常流程负载测试)

三、测试收尾

1、分析测试结果并编写性能测试报告

性能测试结果分析原则:

1) 把实时与推测分开,总是用实际用证据来证明你的推测。

2)在没有足够证据前,不对程序进行优化。

3)优先验证简单的假设。(推测瓶颈)

4)日志文件中没有错误不代表真的没有错误。

5)从系统到应用、从外到内进行层层剥离,缩小范围。

6)范围缩小后,再分割成多个单元,对每个单元进行轮番压力测试,来证明或者否定是哪个单元引起的性能问题。

瓶颈分析:

服务硬件瓶颈->网络瓶颈(局域网可不考虑)->服务操作系统瓶颈(参数配置)->中间件瓶颈(参数配置、数据库,web服务器等)->应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)

2、性能测试总结

对本次性能测试做一个总结。把可以固化的文档和方法归类整理,把需要改进的地方列出在后续测试中实施。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

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

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

相关文章

2023-6-26-第八式装饰器模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

【FFmpeg实战】视频解码流程

原文链接:https://blog.csdn.net/weekend_y45/article/details/125168344 一、解码流程使用到的FFmpeg结构体说明 1、AVFormatContext结构体 该结构体描述了一个媒体文件或媒体流的构成和基本信息。它是一个贯穿始终的数据结构,很多函数调用需要使用到…

【云原生丶Docker】理解Docker的核心概念

Docker的核心优势是什么? 在 什么是虚拟化技术? 一文中,我们对虚拟机和 Docker 都有了简单的了解,需要的小伙伴可以自行跳转回顾~ Docker与传统虚拟化技术有什么区别? Docker 相比传统的虚拟机技术更轻量级&#xff0…

TikTok上的中国商品,老外买上瘾了!

在TikTok的全球影响力下,一些中国商品正实现销量的创纪录增长 2022年底,TikTok发了其第五份“Year on TikTok”年度报告,概述了过去12个月TikTok平台上热度最高的创作者、视频内容,以及#TikTokMadeMeBuyIt标签下最热门的5大产品&…

c语言printf输出格式(%d %f %e %x)

一、%d第一组:%d %nd %-nd第二组:%d %0nd %-0nd %.nd第三组:%d %m.nd %-m.nd 二、%f%f %.nf %m.nf %-m.nf 三、%e%e %.ne %me %-me %m.ne %-m.ed 四、%x%x %0nx %nx %-nx 一、%d 第一组:%d %nd %-nd ①n表示输出宽度&#xff08…

深度学习中使用的16位浮点数格式

深度学习中使用的16位浮点数格式 flyfish 文章目录 深度学习中使用的16位浮点数格式浮点数是一个近似值浮点数的表示float单精度类型 和 double双精度类型 的比较查看所占的字节数大小端的比较计算方法16位 float 半精度格式bflat16格式bflat16格式 与 float32单精度格式 比较…

手敲MyBatis(十二章)-ResultMap解析映射使用

1.前言 这一章节主要解决好几章之前留下的坑,需要根据XML配置的ReultMap进行解析映射成具体的PO供用户使用。 我们本章就来解决下在xml中配置了如下标红框的内容,怎么解析映射到具体的实体类中,如下就是将id为activityMap的resultMap怎么解…

发送图文并茂的html格式的邮件

本文介绍如何生成和发送包含图表和表格的邮件,涉及echarts图表转换为图片、图片内嵌到html邮件内容中、html邮件内容生成、邮件发送方法等 一、图表处理 因为html格式的邮件不支持echarts,也不支持js执行,所以图表需要转换为图片内嵌在邮件内容中 因为平…

Sui Builder House京都站倒计时!

Sui Builder House京都站将于6月29日-30日举行,为世界各地的开发者提供身临其境地学习和交流的机会。查看Sui Builder House京都站的五个亮点 活动信息 📆 Builder House时间:2023年6月29日 — 6月30日 📍 活动地址:…

NetSuite OAuth1.0中InvalidSignature问题

本周闭关写代码,用Java通过TBA方式访问NetSuite REST Webservices。由于是手生,卡在InvalidSignature报错上,在这个问题上被卡了一整天。 直到终于到来的Aha时刻。 在NetSuite中的样例代码是PHP的, 我平移到Java后,代码…

【云原生丶Docker】虚拟化技术简介

什么是虚拟化技术? Docker 是一款基于容器虚拟化技术构建的软件,那到底什么虚拟化技术呢?在学习 Docker 之前,先简单了解下虚拟化技术。 虚拟化是云原生的实现基础,它能够帮助我们更加有效地利用物理计算机硬件。 虚…

clip-interrogator本地部署

clip-interrogator本地部署 1. 克隆源码2. 创建虚拟环境及配置3. 下载远程相关文件3.1 下载Salesforce相关文件失败3.2 下载cache相关文件失败3.3 解决库不完整问题 4. 测试代码4.1 脚本一4.2 脚本二4.3 测试run_cli.py文件4.4 测试run_gradio.py文件 源码链接:http…

d3dcompiler_47.dll缺失怎么办?d3dcompiler_47.dll缺失修复方法(详解)

d3dcompiler_47.dll在Windows操作系统和 DirectX应用程序中使用此 DLL 文件,包括游戏,图形处理软件,CAD软件和其他3D应用程序中。如果电脑提示“由于找不到d3dcompiler_47.dll,无法继续执行此代码”,“d3dcompiler_47.dll缺失”&a…

Docker卷与持久化数据

数据主要分为两类,持久化的与非持久化的。 两者都很重要,并且Docker均有对应的支持方式。每个Docker容器都有自己的非持久化存储。非持久化存储自动创建,从属于容器,生命周期与容器相同。这意味着删除容器也会删除全部非持久化数…

网络维护岗位个人求职简历

网络维护岗位个人求职简历1 姓名: 国籍:中国 目前所在地:广州民族:汉族 户口所在地:湖南身材:170cm64kg 婚姻状况:未婚年龄:28 求职意向及工作经历 应聘职位: 工作年限&a…

day14_面向对象的三大特征之一(继承)

继承的概述 Java是对现实社会的模拟,现实中有儿子可以继承父亲的财产,因此有了富二代的。 java中多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来…

【Java-SpringBoot+Vue+MySql】项目开发杂记

目录 1、关闭eslint 2、 新建路由 3、安装jQuery依赖-在Vue使用JQuery语法 4、MySQL———数据全部清除,自增归零 5、前后端数据传递——增加功能 6、使用element-ui获取当前表格中的数据——删除功能 1、关闭eslint 2、 新建路由 {path: /user,component: Lay…

LLM - Hugging Face 工程 BERT base model (uncased) 配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131400428 BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练,没有人以…

RabbitMQ实现延迟消息,RabbitMQ使用死信队列实现延迟消息,RabbitMQ延时队列插件

文章目录 一、什么是延迟消息1、队列的属性2、消息的属性3、什么是死信4、使用死信队列的缺点5、延时消息插件 二、JavaAPI利用死信队列实现RabbitMQ延迟消息1、代码实现2、基本流程 三、JavaAPI利用插件实现RabbitMQ延迟消息1、代码实现2、基本原理 四、Springboot利用死信队列…

5分钟自建可视化平台,在线拖拽组件也太方便了!

一、前言 我们在完成 C 端用户的业务需求时,发现大量电商推广页面的逻辑复杂度和交互程度都比较低,却要消耗大量的开发资源。同时在后台管理系统的开发过程中,我们也发现一些相同套路的页面在不同场景下需要重复开发,即使我们封装…