电商项目的性能测试流程,看完就懂!

news2025/3/1 9:30:31

今天给大家带来一套完整的性能测试实操流程,就以大家耳熟能详的电商项目来进行示例。现在就花个5分钟,认真看一下吧!

一、核心业务梳理

做一个项目的性能测试,首先得梳理出哪些业务需要进行性能测试。这个过程有一个前提就是:要对测试的对象(项目)熟悉。熟悉到什么程度呢?明确知道该项目的行业,业务和所有的功能。

对电商项目来说,大家肯定都知道电商的业务是什么,比如登录,搜索商品,浏览商品,下单。其中下单这个里面又可以分为秒杀,限时抢购等不同的功能。

所以要根据项目的业务梳理出要做性能测试的业务:

图片

在进行业务分析的时候,系统的业务功能是可用的。也就是说需要通过基本的功能测试。而且需要根据项目的核心业务(需求明确有性能要求的业务),高频的业务(不需要需求指明也应该实现高性能的),基础业务(比如登录这样的业务)的划分,根据优先级来进行性能测试。

二、设计测试场景

这里有的人会称之为:场景建模。意思就是根据多少用户在(多少)时间内做(什么)事情。当然其结果肯定是希望通过测试。

比如秒杀业务。根据项目的要求设定为 1000万的用户在整点进行库存为500的秒杀,先到先得。

当然整个项目来说不可能只有一个业务需要性能并发,所以在熟悉项目为前提的情况下,需要项目中所有需要测试的业务进行如此类的设计。

在设计的同时 ,还要确认该数据的来源,比如整点抢购首先需要用户登录,那么用户的数据怎么获取,是参数化还是直接从数据库读取。然后整点抢购的业务是否需要登录的信息,比如token来传递。这些都需要在这里进行统一的设计和管理。

图片

三、实施压测

第一步要选择相应的平台或者工具。本文以Jmeter工具讲解。

第二步要设计并发量,线程数,循环数。请求参数设置,是否需要二次开发,或者是否需要链接数据库读取数据等。

第三步设定压测方式。如单机接口压测、单机多接口压测、单机混合场景测试、多节点测试等等模式。具体需要根据项目的部署和需求来决定。操作上来说难度也不相同,需要掌握相关的技能。

四、性能瓶颈分析和调优

1、性能分析

性能瓶颈分析一个复杂的话题,性能受系统架构设计、应用场景、业务逻辑、编程语言及采用的框架影响,简单来说可以从以下几个方面考虑:

①、客户端测试结果即通过生成负载来观察被测系统的性能表现,比如通过对TPS、RT等指标的监控,从请求发起端到OS端层层剖析,从而找到系统性能瓶颈。

②、服务端硬件配置和环境通过监控各硬件及操作系统相关指标(CPU、Memory、磁盘I/O、网络)来分析性能瓶颈。

③、测试人员的经验即通过性能表象结合工作经验做快速排除,确定可能存在瓶颈的局部所在,快速修改验证,避免大而全的全面分析带来的耗时,提高效率。

2、性能调优

性能调优从‘降低响应时间’、‘提高系统吞吐量’、‘提高服务的可用性’三个方面进行调优。

性能优化的目的是:在保持和降低系统99%RT的前提下,不断提高系统吞吐量以及流量高峰时期的服务可用性

图片

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

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

相关文章

openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写

文章目录 openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写300.1 概述300.2 使用指导300.2.1 前提条件300.2.2 使用方法示例300.3 获取帮助300.4 命令参考300.5 常见问题处理openGauss学习笔记-300 openGauss AI特性-AI…

【JS重点14】内置构造函数

一:Object构造函数 1 创建对象说明 Object是内置的构造函数,用于创建普通对象。 //通过构造函数方式创建普通对象 const user new Object({name:佩奇,age:18})相较于,利用字面量声明对象利用构造函数方式麻烦,因此推荐利用字面量方式声明…

OpenCV单词轮廓检测

OpenCV单词轮廓检测 0. 前言1. 策略分析2. 检测字符轮廓3. 检测单词轮廓相关链接 0. 前言 在根据文档图像执行单词转录时,通常第一步是识别图像中单词的位置。我们可以使用两种不同的方法识别图像中的单词: 使用 CRAFT、EAST 等深度学习技术使用基于 O…

【算法-力扣】72. 编辑距离(动态规划)

目录 一、题目描述 二、解题思路 三、参考答案 一、题目描述 编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1&#…

win11电脑桌面倒计时提醒怎么设置?

在日常工作中,我们经常需要处理大量的工作任务,而且很多任务都有时间限制。如果将这些任务记录在桌面上,并设置倒计时提醒,无疑会大大提高我们的工作效率。想象一下,在繁忙的工作间隙,你只需一瞥桌面&#…

618火爆来袭,退换货花费多咋办?

姐妹们,一年一度的618就要来了,你准备好了吗,虽然咱们的钱包鼓鼓的,但是咱们的购物袋也要鼓鼓的呀,我们就是要多买,多买,多买,这样才能更显示出自己更爱自己了。 言归正传&#xff…

2024.6.14 刷题总结

2024.6.14 **每日一题** 2786.访问数组中的位置使分数最大,看到这题就想到动态规划的思路,遍历数组,每次选择移动该元素时能获得到的最大值,分别考虑最后一个的元素为奇数/偶数的最大值,用长度为2的数组来储存这两个值…

JUnit 5学习笔记

JUnit 5 学习笔记 1.JUnit5的改变2.JUnit5常用注解及测试2.1 DisplayName/Disabled/BeforeEach/AfterEach/BeforeAll/AfterAll2.2 Timeout2.3 RepeatedTest 3.断言3.1 简单断言3.2 数组断言3.3 组合断言3.4 异常断言3.5 超时断言3.6 快速失败 4.前置条件5.嵌套测试6.参数化测试…

微信群发机器人.使用指南.

0.简介 1.介绍 微信群发机器人是用来群发微信消息的工具,通过控制电脑的键盘和鼠标操作微信app来实现群发.支持的消息类型有:文字,图片,视频,文件,小程序,位置等. 群发机器人也可以将微信联系人中的信息保存到电脑csv表格中,以供分析. 因其是通过模拟用户操作鼠标键盘来实现群…

Java课程设计:基于swing的贪吃蛇小游戏

文章目录 一、项目介绍二、核心代码三、项目展示四、源码获取 一、项目介绍 贪吃蛇是一款经典的休闲益智游戏,自问世以来便深受广大用户的喜爱。这个游戏的基本玩法是控制一条不断增长的蛇,目标是吃掉屏幕上出现的食物,同时避免撞到边缘或自身。随着游戏的进行,蛇的身体会越长…

智慧工厂人员定位系统的影响与前景展望

随着科技的不断发展,智能制造正在迅速崛起,而智慧工厂人员定位系统作为其中的重要组成部分,正在改变传统制造业的面貌。这一系统通过利用物联网、室内定位等技术手段,能够实时准确地追踪和监控工厂内人员的位置。那么,…

Hexapod C-887使用手册 -- 3

3--产品描述 本章中 型号概要 产品视图 交换范围 可选的附件 可命令元素 固件的重要组件 ID芯片探测 轴A和B的操作参数 Hexapod的运动 通过EtherCAT接口发送命令 通信接口 PC软件的概要 3.1 型号概要 C-887 hexapod控制器可以获取以下版本: 型号 描述…

【软件安装9】OpenCV多版本安装Ubuntu18.04

文章目录 一、查看已安装的Opencv版本二、安装新版本三、多版本OpenCV切换 OpenCV 官网 在此 一、查看已安装的Opencv版本 查看已安装opencv的版本 pkg-config opencv --modversion官网下载对应的版本,并解压 opencv3.4.3 二、安装新版本 进入前置准备里下载…

Linux驱动开发笔记(八)输入子系统

文章目录 前言一、输入子系统1. 子系统的引入2. 组成部分3. 事件处理流程4. 相关数据结构 二、程序编写1. 相关API函数1.1 input_allocate_device ( )1.2 input_free_device ( )1.3 input_register_device ( )1.4 input_unregister_device ( )1.5 input_event ( )1.6 input_rep…

ModbusRTU协议之3.5T

RTU 模式每个字节 ( 11 位 ) 的格式为 : 1 起始位, 8 数据位, 1 校验位(也可以无校验), 1 停止位, 校验位使用偶校验、奇校验、无校验都可以,但 使用无校验时必须配置 2 个停止位。 所以无…

阿里云的视频超分辨率服务将视频从25M视频增强至469M,画质提升了不少

效果还是不错的: tom: 阿里云文档: 视频超分辨率SuperResolveVideo的语法及示例_视觉智能开放平台(VIAPI)-阿里云帮助中心 请求参数: 还比较简单,就三个参数,其中一个还是固定的,我本次的BitRat…

【SQLAlChemy】表之间的关系,外键如何使用?

表之间的关系 数据库表之间的关系分为三种: 一对一关系(One-to-One):在这种关系中,表A的每一行都与表B的一行关联,反之亦然。例如,每个人都有一个唯一的社保号,每个社保号也只属于…

深度学习(六)——神经网络的基本骨架:nn.Module的使用

一、torch.nn简介 官网地址: torch.nn — PyTorch 2.0 documentation 1. torch.nn中的函数简介 Containers:神经网络的骨架 Convolution Layers:卷积层 Pooling layers:池化层 Padding Layers:Padding Non-linear …

android 播放视频

播放视频文件 新建一个activity_main.xml文件&#xff0c;文件中放置了3个按钮&#xff0c;分别用于控制视频的播放、暂停和重新播放。另外在按钮的下面又放置了一个VideoView&#xff0c;稍后的视频就将在这里显示。 <LinearLayout xmlns:android"http://schemas.an…

Android Studio新增功能:Device Streaming

今天将Android Studio升级到2023.3.1 Patch2。发现新增了Device Streaming功能。支持远程使用Google的物理设备调试程序。这样可以方便地在真实设备上测试自己的APP。这对于手头没有Google设备的开发者而言&#xff0c;确实方便很多。该功能目前处于测试阶段&#xff0c;在2025…