新项目之初性能测试工作如何前移?

news/2024/5/14 1:21:28/文章来源:https://blog.csdn.net/caixiangting/article/details/131191033

最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必须做性能测试,又因为这个项目是一个新项目,所以大家都没有重视起来。

过了一段时间,当领导问到这个项目的性能测试方案如何落地的时候,大家都懵了,都不知道该怎么办。然后测试组长就把目光投向了我——整个测试团队唯一的测试架构师。在这个时候,我就想起了还有研发架构师,于是我就找到了研发架构师,一起沟通这个项目的性能需求。

问题来了

因为最开始的时候,产品经理也给不出性能需求。要想在项目最开始的时候给出性能测试方案,就必须要有对应的性能需求。但是现在这个项目只是刚开始,还没有一些产品文档,所以产品经理也给不出来性能需求。只能知道大概的产品方向,以及大概的功能模块有哪些,所以在这个时候,只能靠架构师和产品经理在一起进行沟通。

我是如何解决问题的?

由于做的类似于一个电商APP,是前后端分离的项目,所以市场上有很多竞品可以拿来分析,于是就我就主持召开了一个会议“如何落地性能测试?”,参会人员:产品经理,项目经理,研发架构师、还有研发组长。但是在这个会议的进行过程中,发现大家并不是很愿意讨论性能测试,而是比较热衷于产品需求和对应的性能需求,因为没有产品需求和性能需求的话,就谈不到性能测试这一步。

这里再补充一点,其实我们平时在项目里面有三种情况会做性能测试:

1、我们要对当前的系统做一个摸底,也就是系统性能兜底,看一下当前的系统能够容纳多少并发。
2、提出来具体的性能需求,比如我要实现3000人同时做什么什么事情,满足1000并发,系统响应不超过2秒……
3、就是当系统出现性能问题了,我们需要进行性能测试和问题排查。

好像发现了救命稻草

因为这是一个新项目,所以暂时就不会出现性能问题,主要还是要有性能需求才到性能测试,但是这个性能需求没有人能够给出,产品经理给不出来,项目经理也给不出来,研发更给不出来。所以在这个时候,我们的重点是讨论性能需求,在会议讨论过程中发现,我们目前评估竞争产品,也就是竞品分析,发现竞品类APP需要至少满足1000TPS,系统响应不超过2秒。

发现了新问题

综合对比了几款竞品APP,发现:某一款竞品APP在第一个版本要满足 1000TPS的并发能力,但是现在这个1000TPS的并发能力应该如何设计,在这个时候就是另一个问题了,而且这个性能需求也是大家通过竞品分析得来的,并不能算真正的性能需求,只能算暂时的一个伪需求。目前大家的会议讨论的重点就是如何设计一个能够满足1000TPS的性能架构,等以后产品真正上线使用过程中再逐步调整优化需求。

在满足1000TPS的性能架构的基础之上完成的第一个测试版本,性能测试人员才能够对系统进行测试,查看系统到底能否达到1000的TPS,整个会议的目的都已经达到了。剩下的重点就是如何设计一套架构能够满足当前的1000TPS的业务。当然这个工作并不是一个测试人员来做的,也不是简单的研发人员来做的,而是由系统架构师来做。

于是到最后,这个任务就交给了系统架构师,当然测试架构师也要参与其中,但是目前的系统架构师一时间也给不出来具体的架构方案;因为,如果给出来1000TPS的架构方案,就必须在敲代码之前能够设计出来一套具体的架构方案。

重点难点来了

在敲代码之前,能够评估能够给出一套具体的架构方案,并且评估出该方案的吞吐量,TPS不小于1000,这个工作量只能由系统架构师来做,经过一段时间和系统架构师的沟通发现。这个事情只能凭架构师个人的经验来设计了,各种框架、中间件设计、数据库缓存、微服务架构,表结构,负载均衡策略以及每个中间件能满足多少并发。

测试前移

这些都是要凭架构师的个人经验了,毕竟还没有敲代码,等整个架构设计好了之后才开始敲代码!在研发敲代码的时候,测试人员就可以设计开展性能测试相关的工作了!等整个性能测试环境搞定之后,我们就可以真正执行具体的性能测试了!那如果说,当性能环境都搞定了之后,代码也都完成的差不多了,数据也都造的差不多了,这个时候才开始评估性能方案都已经晚了,所以说一定要在敲代码之前就要评估出系统的吞吐量TPS。

当然这个对架构师的技术经验要求都很高,一般人是做不好的,只有系统架构师才能做好,而且是经验非常丰富的系统架构师也不一定能够保证敲代码之前设计的这套方案就能够满足当时的性能评估,所以还是要等性能测试的时候看真正的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算摄影学】总目录

1.数码相机 《数码相机中的图像传感器和信号处理》和《光与赢的魔幻乐园有趣的透镜》 1.1 数码相机概览 1.2 数码相机中光学系统 2.图像传感器 《数码相机中的图像传感器和信号处理》和《智能cmos图像传感器与应用》 2.1 图像传感器基础知识 2.2 CCD图像传感器 2.3 CMOS图像…

mac m1(arm)安装brew(Homebrew)

安装 使用国内脚本安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装完成后使用brew安装tcping试试 brew install tcping发现报错 Error: Cannot install in Homebrew on ARM processor in Intel default prefi…

SpringBoot(基础篇)

SpringBoot基础篇 入门案例 在创建SpringBoot项目时,会出现以下不需要的文件,如果每次都手动删除的话,就会很麻烦。 教你一招 在setting设置中找到Editor,选择File Types–>Ignored Files and Folders–>点击号&#xff…

接口自动化测试,HttpRunner框架参数化进阶实战,你要的都有...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、获取返回包数据…

python高级-socket和web相关

目录 一、socket 1.客户端开发 2.tcp客户端 3.tcp服务端 4.连接的注意事项 5.多任务服务端 二、静态web 1.请求报文 2.响应头 3.静态web服务器 4.socket静态页面 5.多进程模拟404和200状态码 6.面向对象多任务 结语 一、socket 1.客户端开发 创建客户端套接字对…

001、体系结构之概述

1.TiDB简介 TiDB 是 PingCAP 公司⾃主设计、研发的开源分布式关系型数据库,是⼀款同时⽀持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing,HTAP) 的融合型分布式数据库产品,具备⽔平扩容或者缩容、⾦融级⾼可⽤、实时HTA…

两个链表相加

描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。 给定两个这种链表,请生成代表两个整数相加值的结果链表。 数据范围:0≤n,m≤1000000,链表任意值 0≤val≤9 要求:空间复杂度 O(n)…

智慧矿山成行业新趋势,千寻位置助力企业数字化转型

随着政策推动和科技发展,智慧矿山已成为矿业行业的趋势和未来的方向。 智慧矿山就是以矿山数字化、信息化为前提和基础,对矿山生产、人员健康与安全、技术支持与后勤保障等进行主动感知、自动分析、快速处理,最终实现安全矿山、无人矿山、高效…

3ds Max - Pivot Painter Tool

很久之前的笔记,整理归档; Pivot Painter Tool是3dsMax中的插件,主要是辅助将Mesh中每个Element生成自己的Pivot Position,方便如使用World Position Offset对每个Element进行精确控制,导入使用Pivot Painter Tool工具…

java读取文件内容

直接上代码,两个类:一个工具类,一个测试类 工具类代码: package org.example.study.util;import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils;import java.io.*; import java.nio.charset.Charset…

企业转型在搭建BI时,需要注意什么

如今,商业智能BI在全世界范围内掀起了一股热潮,形成了一个庞大的市场,在信息化时代,企业需要借助BI来进行更好的成长。 在这种全新的社会、商业BI环境下,各行各业的企业都开始寻求探索新的商业模式,通过转…

python + pytest 接口自动化 —— 参数关联

什么是参数关联? 参数关联,也叫接口关联,即接口之间存在参数的联系或依赖。在完成某一功能业务时,有时需要按顺序请求多个接口,此时在某些接口之间可能会存在关联关系。 比如:B接口的某个或某些请求参数是…

Spring Security--会话管理

就像登录qq一样,一个手机登录会将另外一个手机挤下线,这个就叫会话管理。 这个东西非常简单,在默认情况下可以登录n多次,一旦开启,就不允许登录多个。 什么是一个会话。 我们简单理解就是一个浏览器的同一个用户算一…

0基础转行,网路工程和网络安全哪个更有发展前景?

对于初学者而言,初入IT行业最重要的就是选择一个热门且前景好的职业,而网络工程和网络安全作为IT行业的热门职业必然成为很多人的首选,那么网络工程和网络安全哪个发展前景好?小编带大家详细了解一下。 首先,我们对网络工程和网络…

聊一聊近期测试行情以及个人的感受

众所周知,去年年底的裁员潮再加上今年的疫情影响,失业、找工作成为了蛮多人的当务之急。最近一些招聘网站也出现被刷爆的情况,其中顺利找到工作的并不多,说明行情很冷,但是总有许多人顺利跳槽。 其实对于大牛来说&…

工具篇--4 消息中间件-RabbitMq 模型介绍

1 介绍: RabbitMQ 是一个开源的消息中间件,它实现了 AMQP(高级消息队列协议)标准,并且支持多种语言和操作系统,包括 Java、Python、Ruby、PHP、.NET、MacOS、Windows、Linux 等等。RabbitMQ 提供了可靠的消息传递机制…

号称 Java 面试八股文天花板(2023 最新版)首次开源

咱们先来说说: 最近感慨面试难的人越来越多了,一方面是市场环境,更重要的一方面是企业对 Java 的人才要求越来越高了。 基本上这样感慨的分为两类人,第一,虽然挂着 3、5 年经验,但肚子里货少,也…

Element常用组件之 表单组件 form

1. 建立form.vue <template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"活动名称"><el-input v-model"form.name"></el-input></el-form-item><el-f…

怎样高效率备考PMP

一方面由于这些考试的知识&#xff0c;在准备考试前我们大部分很少接触&#xff0c;大部分人考试的目的也未必是感兴趣&#xff0c;更多是因为考试结果能给我们带来的收益。因此长时间的学习不熟悉甚至不感兴趣的很容易疲倦&#xff0c;这不像我们工作或生活中的一些技能&#…

Springboot Apollo配置yml

1.背景&#xff1a; 项目都是配置的Apollo配置中心来进行配置的。新功能需要yml格式的数据&#xff08;层级结构更清晰&#xff09; 2.问题&#xff1a; 1&#xff09;Apollo是否支持yml格式的配置信息&#xff1f; 2&#xff09;配置好了以后读取不到Apollo配置的yml。 3…