职场日常:一文剖析性能测试流程,时间为啥那么长?

news2025/1/12 11:57:48

如果你做过性能测试,你就会知道,性能测试的时间要比功能测试时间长很多,但是,你没有做过,你可能就会问了,为什么性能测试时间要长那么多呢?今天就用一文,带大家了解性能测试工作流程。

图片

这是一张性能测试工作流程导图。从数量上,流程环节并不多,但是,细心的人,可能会发现,这里有个性能环境搭建和性能结果分析与调优。平时,你做测试,需要自己搭建测试环境吗?你测试发现的问题,你会追究问题根源,找出解决办法吗?可能大部分都认,都不需要做这些事情。但是,性能测试,这些事情,是少不了的。

性能测试准备

在这里插入图片描述

上面这张图,罗列了一些在性能测试准备阶段需要做到事情。

熟悉需求与业务。这个大家都能理解,就是要了解具体需求,因为,企业中,性能测试人员一般都比较紧缺。比较少的长期跟踪一个项目,所以,在开始做性能测试时,要熟悉需求,熟悉业务。

确认性能需求的必要性。这个可能很多人,就理解不了了。在功能测试时,都是按照需求文档来,需要要求做就做。但是性能测试,人才难求、技术难度较大、投入成本偏高,并不是所有需求都需要做性能测试的。同时,性能需求的提出者,大多数情况下对性能测试的了解也是有限的,性能测试人员,不能完全尽信需求提出者。

明确性能需求、量化性能指标。做测试,要明确需求的边界,性能测试也一样,没有边界,就没有了测试范围和结束标准,这是很可怕的事情。如果不能量化性能指标,也就无法判断实际测试结果是否符合预期。

熟悉项目架构、通信协议。现在企业项目架构一般都比较复杂,涉及非常多的服务,服务之间的通信方式也会有差异。所以,在性能测试前,我们需要熟悉项目架构,及通信协议,这样,才能知道各个服务的主要用途,以及是如何通信的。

理清需求数据请求流。一个接口请求的数据,要经过哪些服务,由此构成的数据请求流需要弄清楚。对接口进行性能测试时,会因为请求流中某一个服务的请求时间偏长,导致整个请求的时间过长,出现性能瓶颈,所以,需要弄清楚数据请求经过的每一个服务。

掌握需求中涉及的系统核心文件与关键参数。一个接口请求,可能要经过多台服务器,多个服务,每台机器的硬件配置、操作系统核心参数,服务的配置文件、核心参数,这些都是需要事先弄明白的,因为,在性能测试过程中,需要全程监控和随时调整参数值的。

掌握项目各系统环境搭建。性能测试需要独立搭建环境,所以,在准备阶段,要对产品架构中使用到的各种环境、操作系统都要熟悉,掌握他们都环境搭建和核心参数。

负载机器准备。性能测试,一般发起方电脑都需要做特殊设置,所以,在性能测试准备阶段,要准备好几台负载机,同时,做好相关设置,以便在正式测试时,能马上使用。

制定性能测试计划。任何一项工作开展之前,都需要做好计划,性能测试也不例外,需要做好时间、人员、工作安排。

设计性能测试模型。功能测试,需要设计测试用例,性能测试也是一样,只不过这个测试用例,一般就测试模型,模型设计清楚了,后面就能快速开发出性能测试脚本。

评估性能测试工作量。工作量评估非常重要,能预估一段时内能完成的工作。

性能环境搭建

图片

上面这张图,大致的罗列了性能测试流程的第二个环节“性能环境搭建”的相关工作:

申请服务器硬件资源。性能测试需要搭建独立的性能测试环境,所以,一般都要测试人员去申请服务器硬件资源。

申请服务器网络配套资源。搭建性能测试环境,需要连通,网络资源也需要申请。

检查、调试服务器操作系统参数。有了硬件资源,需要在上面安装操作系统才能部署服务,操作系统一些参数需要调整,与生产环境保持一致。

搭建产品服务环境。申请了硬件资源,就要搭建服务环境,确认正常运行。

调试产品服务间网络环境。部署了服务,服务之间能调通才能实现产品功能,需要调试通过。

搭建服务器监控环境。性能测试需要监控,才能收集性能测试过程中,服务器各种资源使用情况,所以,还需要搭建监控环境,监控被测服务器各种资源使用情况。

检查、调试性能测试机操作系统参数。性能测试,发起方的机器,需要对操作系统参数做一些定制性的优化,所以,需要检查、调试发起方的系统参数优化。

调试性能测试机与产品服务器间网络。性能测试发起方的机器可能会使多台,必须确保每台机器与被测服务器之间网络通信正常。

性能脚本开发

图片

上图,罗列了一些在“性能脚本开发”阶段需要去做到工作:

编写性能测试脚本,并调试通过。做后端服务器性能测试,不是简单的接口调用,它的脚本与接口测试脚本不一样,调通了接口脚本,还需要进行性能转换,并调试通过。

根据性能需求,实现性能测试场景,并模拟测试通过。脚本调试通过后,就要进行性能场景设置,把性能测试模型转换为性能场景,并调试通过。

研究、分析性能测试脚本自身性能,并做好优化。性能测试,要向被测服务器发起大量的请求,如果自身脚本性能很差,发起的请求量就会少,对服务器造成的压力也就低,性能结果偏差就大,所以,要研究、分析和优化自身测试脚本。

准备或建造性能测试数据。执行性能测试,脚本中,可能需要使用大量数据,这些数据,在编写好脚本之后,就要开始准备和建造了。

性能脚本在多负载机上调试通过。性能测试可能需要多个负载机来产生并发用户数,所以,需要再所有的负载机上调试性能脚本通过。

性能测试执行

图片

上图,罗列了一些在“性能测试执行”阶段,需要做的工作:

项目数据库数据建造。做性能测试,数据库需要准备一些数据,所以,在执行性能测试时,先要在被测接口关联的数据库表中建造一定量的数据。

性能场景的执行与调整。在性能脚本开发阶段,虽然实现了性能场景的设计,但是,在真正执行的时候,需要对执行的结果做出分析判断,然后调整性能场景。

性能测试过程监控与分析。性能测试执行过程中,需要根据性能执行的结果数据进行及时的调整。

服务器资源监控与及时分析。性能分析需要有性能监控,执行过程中,需要对服务器各个环节进行监控,并做出及时的分析。

网络资源监控与及时分析。性能测试,同一时间会有大量请求经过网络,如果网络有瓶颈,性能测试的结果数据就得不到真实反馈,所以,需要时刻关注网络监控,并做出及时分析。

负载机资源监控与及时分析。负载机是发起性能测试的机器,所以对负载机的资源也要进行监控和分析,并做出及时调整。

测试数据分析。性能测试执行,就会产生性能测试数据,需要对性能数据进行初步分析,以及时调整下一步执行方案。

性能测试过程记录。性能测试执行阶段,需要反复执行和调整,所以,对每一次的执行,都需要做好记录,以便在写测试报告的时候,真实反映测试过程。

性能结果分析与调优

图片

上图,罗列了一些“性能结果分析与调优”阶段需要做的工作:

规整一次性能测试执行的各种数据。数据是性能分析的支撑,所以,需要规整一次性能测试执行的所有数据。

对一次执行结果的数据进行整体分析。对规整的数据进行分析,分析一次执行的数据,调整到下一次执行过程中。

对多次执行结果数据进行综合分析。规整整个测试过程的所有数据,才能在整体上做出问题定位。

分析、定位、调优性能问题,再执行。对于规整好的数据,进行全面的分析,才能深入分析、定位和调优发现的性能问题。

编写测试报告与跟踪

图片

上图,罗列了一些在“编写测试报告和跟踪”阶段的工作:

规整整个测试过程和测试数据,编写性能测试报告。编写性能测试要汇总各方面都数据,其中,整个测试过程所有测试相关的数据也是报告中重要的组成部分。

调优性能测试问题。性能测试过程中发现的问题,要经过反复调优和再测试。

记录、跟踪、再验证性能问题。性能测试过程中的问题,不是所有的都能在短时间内解决的,不能解决的问题,需要记录和持续跟踪,待修复的时候再次通过测试的检验。

这就是性能测试流程各个环节及要做的工作,虽然,不能代表所有,但是,囊括大部分性能测试工作。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

自学python?一般人我还是劝你算了吧

前言 本人纯屌丝一枚,在学python之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说自学python,一般人我还是劝你算了吧。因为我就是那个一般人。 基础真的很简单,是个人稍微认点真都能懂&#…

Python一学就会系列:01 开发环境搭建 及 hello world

文章目录前言一、python是什么?官网简介二、开发环境安装1.下载2.安装3. 验证是否安装成功编写一个python新建一个后缀名为py的文件运行python文件总结前言 一、python是什么? 官网 https://www.python.org/ 简介 官网介绍: Python是一种编…

美团面试官总结的“Spring boot面试文档”,全是大厂高频面试题,太全了!

前言 Spring boot不单单在BAT这些一线大厂使用率极其的高,在中小企业中使用率也是非常高的,企业的需求增大,当然对待面试者的要求也会随之提高,竞争也会随之增大。 相信现在的你之所以可以看到我的这篇文章,那肯定是…

[附源码]计算机毕业设计的高校课程知识库Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python数据分析项目案例

第一部分:数据类型处理 数据加载 字段含义: user_id:用户IDorder_dt:购买日期order_product:购买产品的数量order_amount:购买金额观察数据 查看数据的数据类型数据中是否存储在缺失值将order_dt转换成时间类型查看数据的统计描述在源数据中添加一列表示…

图像风格迁移基础入门及实践案例总结

目录 1图像的不同风格 2何为图像风格迁移 2.1基础概念及方法 2.2示例 3图像风格迁移的典型研究成果 3.1deep-photo-styletransfer 3.2CycleGAN 3.3U-…

【问题记录】Mac M1 Docker配置redis一主二从三哨兵(烧饼好吃)

文章目录Docker配置 redis一主二从三哨兵文件目录redis compose 文件在 redis 文件路径下执行 docker composesentinel 文件结构sentinel compose 配置文件sentinel config 配置文件切换到 sentinel执行 compose测试及问题记录解决方案Docker配置 redis 一主二从三哨兵 文件目…

8家最大的WooCommerce在线商店

想象一下,世界上三分之一的电子商务网站都由单一技术提供支持,而且令人惊讶的是它是免费的。我说的是最大的电子商务解决方案提供商之一,WooCommerce。在这里,我们列出了8 家最大的WooCommerce在线商店,以激发您建立自…

基于jsp+mysql+ssm供应链管理信息系统-计算机毕业设计

项目介绍 本文以销售供应链管理系统的开发为背景,对企业销售管理系统的分析,设计,开发和实施过程进行了详细的描述。本系统基于ssm框架访问作为后台数据库管理连接,通过jdbc与数据库建立连接,以jsp为前端开发工具提供…

数据库之MHA高可用集群部署及故障切换

目录 1 MHA概念 1.1 MHA 的组成 1.2 MHA 的特点 2 搭建MySQLMHA 2.2 修改三台MySQL服务器的主配置文件/etc/my.cnf,并创建命令软链接 2.3 配置MySQL一主两从 2.4 安装 MHA 软件 2.5 在所有服务器上配置无密码认证 2.6 在 manager 节点上配置 MHA 2.7 第一次配…

分类评价指标

不均衡数据 很多时候,不同类别的分类代价并不相等,这就是非均衡分类问题。如果在两个类别中,一个类别的出现次数比另一个多很多,那么错误类型将发挥重要作用。例如。我们一共有100个病人,其中99人是健康的&#xff08…

『.Net』在C#/.Net中将Json压缩成一行的几种方式

📣读完这篇文章里你能收获到 在.Net Core中使用多种方式将Json压缩成一行主要介绍两种实现方案,Newtonsoft.Json和内置的System.Text.Json 文章目录一、Newtonsoft.Json二、System.Text.Json一、Newtonsoft.Json 将 Formatting 参数设为 Formatting.No…

世界杯杂谈之有趣的数据纪录

目录 (一)前言 (二)正文 1. 关于出场 (1)出场次数 (2)出场时间最长球员 (3)连续出场决赛场次最多 (4)世界杯出场时间最短的人 …

在Mac上优雅的使用ssh和sftp (像win上的xshell和xftp一样)

怎样在Mac上SSH和FTP?完美替代XShell是哪个软件?item2吗?Royal TSX! 没有比它更好_哔哩哔哩_bilibili 下载Royal TSX Royal TSX https://www.royalapps.com/ts/mac/features 安装插件 创建document 在document里面添加ssh和sftp 点击左下角加号,依次选这两个,因为一样,所…

使用Jenkins扩展钉钉消息通知

Jenkins借助钉钉插件,实现当构建失败时,自动触发钉钉预警。虽然插件允许自定义消息主体,支持使用 Jenkins环境变量,但是局限性依旧很大。当接收到钉钉通知后,若想进一步查看报错具体原因,仍完全依赖邮件通知…

LWIP——无操作系统移植

目录 移植说明 LwIP前期准备 以太网DMA描述符 LwIP移植流程 添加网卡驱动程序 添加LwIP源文件 移植头文件 网卡驱动编写 移植总结 移植说明 LwIP的移植可以分为两大类:第一类是只移植内核核心,此时用户应用程序编写只能基于RaW/CallBack API进行…

mybatisplus 集成druid连接池源码分析

mybatisplus 集成druid连接池源码分析:从spring的源码过渡到druid的相关jar包,里面是druid相关的类,下面我们开始分析: 1、取数据库连接的地方入口:public abstract class DataSourceUtils 为spring-jdbc包里面的过渡…

深度学习 Day21——利用RNN实现心脏病预测

深度学习 Day21——利用RNN实现心脏病预测 文章目录深度学习 Day21——利用RNN实现心脏病预测一、前言二、我的环境三、什么是RNN四、前期工作1、设置GPU2、导入数据3、检查数据五、数据预处理1、划分数据集2、数据标准化六、构建RNN模型七、编译模型八、训练模型九、模型评估十…

网站TDK三大标签SEO优化

网站TDK三大标签SEO优化 SEO(Search Engine Optimization)汉译为搜索引擎优化,是一种利用搜索引擎的规则提高网站在有关搜索引擎内自然排名的方式 SEO的目的是对网站进行深度的优化,从而帮助网站获取免费的流量,进而在搜索引擎上提升网站的排…

day39 CSRFSSRF协议玩法内网探针漏洞利用

前言: #知识点: 1、CSRF-原理&危害&探针&利用等 2、SSRF-原理&危害&探针&利用等 3、CSRF&SSRF-黑盒下漏洞探针点 详细点: CSRF 全称:Cross-site request forgery,即,跨站…