当前位置: 首页 > news >正文

性能测试-jmeter14-性能项目分析

课程:B站大学
记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师

性能测试-jmeter项目性能分析

  • 并发数计算方式(续)
    • 1、 计算模拟用户正常业务操作《稳定性测试》的并发量:
    • 2、计算模拟用户峰值业务操作(压力测试)的并发量:
    • 并发数的计算-案例
      • ​​稳定性分析​​
      • 压力分析​​
  • 性能测试项目整体安排
    • 轻商城项目的功能介绍
    • 轻商城项目的技术介绍
    • 轻商城项目的数据库设计
    • 搭建性能测试环境
      • 1. 获取项目源代码
      • 2. 构建轻商城后端代码
      • 3. 构建前端代码
      • 4. 初始化 MySQL 数据库
      • 5. 启动轻商城后台管理系统后端服务
      • 6.部署轻商城前端服务
  • 性能测试需求分析
    • 1、如何获取有效的需求
      • 1.1 客户方提出(可以是甲方、也可以是产品提出):
      • 1.2 根据历史数据分析(根据运营数据来评估计算出应该达成的性能指标。——互联网行业):
    • 2. 性能测试点的提取
    • 2.1 性能测试点的提取规则
    • 2.2 轻商城性能测试点的提取
  • 3. 确定性能测试目标
  • 性能测试分析总结:
  • 实践是检验真理的唯一标准


并发数计算方式(续)

1、 计算模拟用户正常业务操作《稳定性测试》的并发量:

根据这些数据统计图,可以得出结论:
在这里插入图片描述

  • 大部分订单在 8 点 - 24 点之间,因此系统的有效工作时长为 16 个小时
  • 从订单数量统计,8 - 24 点之间的订单占一天总订单的 98%左右(40474 个)

结合二八原则计算公式:TPS = 总请求数 80%/(总时间 20%)

需要在测试环境模拟用户正常业务操作(稳定性测试)的并发量为:
TPS = 40474 * 0.8 请求数 / 16 * 3600 * 0.2 秒 = 2.81 请求数/秒

2、计算模拟用户峰值业务操作(压力测试)的并发量:

从上面的图中可以得出以下结论:

  • 订单最高峰在21点 - 22点之间,一小时的订单总数大约为8853个。

计算压力测试的并发数:TPS = 峰值请求数/峰值时间 * 系数

注意点:此处系数由项目组决定
需要在测试环境模拟用户峰值业务操作(压力测试)的并发量为:

TPS = 8853 请求数 / 3600 秒 * 3(系数)= 7.38 请求数/秒

具体性能指标是由公司性能测试团队指定的

并发数的计算-案例

某购物商城, 经过运营统计, 正常一天成交额为100亿, 客单价平均为300元, 交易时间主要为10:00-17:00-24:00, 其中19:00-20:00的成交量最大, 大约成交20亿。
现升级系统, 需要进行性能测试, 保证软件在上线后能稳定运行。
请计算出系统稳定性测试时的并发(负载)量, 及保证系统峰值业务时的并发(负载)量

​​稳定性分析​​

有效的交易时间为10:00-14:00,17:00-24:00, 一共为11个小时
有效的请求数: 100e/300
稳定性TPS = 100e/300 80% / (113600*20%)

10000000000 / 300 * 80% / (11 * 3600 * 20%) ≈ 3366.62 请求数/秒 (TPS)​
3300并发量为基准可以进行长时段稳定性测试

压力分析​​

峰值的交易时间为19:00-20:00, 一共为1个小时
有效的请求数: 20e/300
峰值TPS = *20e/300 / 3600 系数

​​2000000000 / 300 / 3600 ≈ 1851.85(保留两位小数)​
1850并发量为峰值并发,超过即是负载测试,长时间超过即是压力测试

在实际项目业务中,很多指标都是我们需要不断调试和测试出基准线的,其次也需要接触很多监控工具,时序数据库,服务端监控等。

性能测试项目整体安排

  1. 熟悉项目的功能模块和技术架构
  2. 掌握如何进行性能测试点的提取
  3. 掌握性能测试计划包含的主要内容
  4. 掌握如何编写性能测试用例
  5. 熟练掌握如何编写JMeter测试脚本-这一步不难
  6. 知道如何建立性能测试环境-这一步不难
  7. 掌握如何执行测试脚本
  8. 掌握性能测试监控关键指标
  9. 知道如何进行性能测试瓶颈分析-这一步最为关键
  10. 知道如何进行性能调优-最难
  11. 掌握性能测试报告包含的主要内容-输出产品

轻商城项目的功能介绍

功能架构

• 前台:首页、商品详情、加入购物车、订单、支付、团购、优惠券
在这里插入图片描述

• 后台:商品管理、会员管理、商城管理等等
在这里插入图片描述
在实际性能测试中,一般会选择经验丰富的功能测试人员、接口测试人员(且具备性能测试技术)的人负责性能测试项目

轻商城项目的技术介绍

在这里插入图片描述
在这里插入图片描述

实际业务项目中技术架构复杂的多,但是专人专职,故大家无需担心性能测试遇到的卡点,找对人解决就行了。

轻商城项目的数据库设计

性能测试中一般需要造大量数据,有些可以用csv,但是有些如果调用接口造数据显然很慢,那么这时候我们就要用熟悉数据库以及对于的语言造数据
比如mysql需要水sql语句,比如redis需要键值对语句,比如Oracle需要对应键值对语句
比如消息队列MQ需要会模拟告警数据等等
现在AI很强大,大部分性能sql都可以用AI分析

  • 熟悉数据库设计结构, 便于后期对数据库的性能监控
  • 性能测试的过程中, 数据库容易出现性能瓶颈

在这里插入图片描述
数据表需要了解可以看DDL语句或者sql语句即可
数据表一般也有文档说明,需求文档说明
平常测试时需要清除数据库对应数据或者redis缓存等,确保测试环境干净,一般还会自己搭建服务端环境或者docker容器,用于隔离环境但是映射生产环境数据(用请求头指定或者容器隔离)

搭建性能测试环境

轻商城项目部署步骤

1. 获取项目源代码

• 包含前端代码和后端代码

• 实际工作中,项目源代码由开发团队提供;项目所需的配置文件、启动顺序等说明,也会由开发团队通过文档形式提供

2. 构建轻商城后端代码

• 执行编译、打包操作

• 最终打包为 jar 包或 war 包

3. 构建前端代码

• 使用 Node.js 进行打包

• 打包后的部署包中,会包含 HTML、JS、CSS 等静态资源文件

4. 初始化 MySQL 数据库

• 项目启动前,需先完成数据库初始化

• 执行初始化数据库的 SQL 文件:
实际业务中一般用docker挂在券完成初始化操作,使用docker compose up 重启服务即可,宿主机放置初始化文件即可

  source /usr/local/litemall/litemall-db/litemall.sql

5. 启动轻商城后台管理系统后端服务

• 执行以下命令启动服务:

java -jar litemall-all.jar

实际公司业务中是使用docker+k8s

  • jar包是通过maven构建java源代码打包输出的文件
  • WAR包包含了Java Web 应用的所有组件,如Servlet、JSP 页面、Java 类文件、配置文件等,是一种专门针对Java Web 应用的打包方式
  • 前端使用node.js打包输出静态资源源文件

6.部署轻商城前端服务

  • 可以使用Nginx服务器
  • 通过浏览器访问启动的前端,测试项目是否能够正常运行
    注意点:在实际软件项目中
    会使用阿里云配置ssl证书,进行icp备案,云服务器绑定域名,域名cdn全站加速,dns隐藏,软件服务通过容器控制,代码服务通过docker容器管理,多个docker容器通过K8s管理,并且由多个版本管理作为回退工具,确保软件服务更新不影响线上用户,内部团队消化解决。
    部署项目流程不难,但是对于各种服务管理,集群管理,网络通信管理,试试监控,服务器安全等就需要不断学习啦,大部分都是网络运维工程师的技术,但是作为性能测试工程师若掌握,那么就可以去做服务端存储测试工程师啦!!
    对于网络运维需要掌握的技能,最好的方式就是入职岗位,半年就掌握初级运维需要的技术栈啦

性能测试需求分析

性能测试需求分析与传统的功能测试需求有所不同

• 功能测试需求分析:重点在于分析被测系统的功能是否满足产品功能需求规格(正向、逆向)

• 性能测试需求分析:重点在于分析被测系统是否能满足特定的业务需求场景时间、资源

• 需要从业务场景、程序代码、服务器、硬件配置等多个维度分析系统可能存在性能瓶颈

1、如何获取有效的需求

1.1 客户方提出(可以是甲方、也可以是产品提出):

• 能够提出明确需求的一般是金融、银行、电信、医疗等企业,他们一般对系统的性能要求高,并且对性能也非常了解。

• 提示:需要评估性能需求的合理性。

1.2 根据历史数据分析(根据运营数据来评估计算出应该达成的性能指标。——互联网行业):

• 通过分析历史运营数据收集用户信息,如:

 ◦ 注册用户数、日活、月活,计算用户的增长速度。◦ 每月、每周、每天的峰值业务量是多少。◦ 用户频繁使用的功能模块是哪些。注意:简历中一定要写银行测试,金融项目测试,哪怕你只会功能测试,也有一份不错的待遇,但是如果你会自动化测试,性能测试,那么就恭喜你。

2. 性能测试点的提取

2.1 性能测试点的提取规则

序号类别分析维度示例
1用户频繁使用的业务功能基于运营数据的使用频率分析搜索商品
加入购物车
2非常关键的业务功能核心业务功能的重要性分析加入购物车
下订单
3特殊交易日或峰值交易的业务功能交易场景特殊性双11大促
秒杀活动
4核心业务发生重大调整的业务功能业务流程变更付款后自动开票(原流程需手动申请)
5资源占用非常高的业务功能系统资源消耗大数据报表生成
高并发文件上传

2.2 轻商城性能测试点的提取

编号功能模块业务功能功能描述
T01登录登录用户通过用户名和密码登录
T02首页进入首页获取商城首页数据
T03商品搜索商品通过关键字搜索商品
T04商品查看商品详情点击商品进入商品详情页面
T05购物车添加购物车把商品加入购物车
T06购物车查看购物车用户查看购物车内的商品
T07订单商品结算对已选择的商品进行结算
T08订单提交订单用户提交商品订单
T09订单查看我的订单用户查看订单列表

3. 确定性能测试目标

轻商城作为一个新开发的项目,性能测试目标包括:
1. 确定核心业务功能的TPS
2. 对业务流程(多接口组合)进行压测
3. 系统能在实际系统运行压力的情况下,稳定的运行24小时

注意点:这里就需要根据历史运营数据等找到详细的数据和参数,然后就可以根据实际项目需要的并发计算方式得到基准指标数据

期望的TPS和最大响应时间:

编号功能模块业务功能TPStime
T01登录登录203s
T02首页进入首页1005s
T03商品搜索商品403s
T04商品查看商品详情1003s
T05购物车添加购物车203s
T06购物车查看购物车203s
T07订单商品结算103s
T08订单提交订单103s
T09订单查看我的订单402s

性能测试分析总结:

软件项目性能测试点的提取:

  1. 根据性能测试点的提取规则,结合软件项目的功能,整理出需要进行性能测试的测试点。
  2. 通过使用前面讲解的获取性能指标的方法(产品给/运营数据/监控系统指标计算),得到每个测试点要满足的性能指标。
  3. 确定项目的测试目标:
    ◦ 针对每个核心的业务功能都要达到对应的性能指标要求。
    ◦ 基于业务流程(多个接口的组合)来测试是否达到性能指标的要求。
    ◦ 模拟用户真实的业务场景,进行长时间的稳定性测试。

实践是检验真理的唯一标准

http://www.dtcms.com/a/403215.html

相关文章:

  • 网站建设制作小程序开发卖友情链接的哪来那么多网站
  • react的依赖项数组
  • 购物网站下载长沙做网站比较好的公司
  • 大模型剪枝系列——基于梯度的剪枝
  • 【论文阅读】A Survey of Reinforcement Learning for Large Reasoning Models
  • 《Cursor+Copilot引领的AI辅助开发路径》
  • 调用 vLLM API 时常用的三种请求头模板:普通请求、带鉴权请求、流式请求。
  • 第6.3节 iOS Agent开发<一>
  • 多多返利网站建设程序中装建设股票
  • 处理限流、缓存与数据一致性:1688 API 实时数据采集的技术细节
  • 网站建设需要什么编程语言wordpress 飞龙博客 许愿墙
  • Pythoner 的Flask项目实践-绘制点/线/面并分类型保存为shpfile功能(Mapboxgl底图)
  • 汽车渗透测试自动化工具和过程
  • 南京大学 LLM开发基础(二)大语言模型解析 -- 基于HF LlaMA实现的讲解
  • 《企业级知识图谱从0到1的开发实录》
  • Java虚拟机——垃圾回收算法
  • 电商平台正在建设中网站页面营销策略英文
  • MCP协议:重构AI协作的未来,打破模型边界的技术革命!
  • 做网站要备案吗宁波seo公司排名榜
  • UE5 GAS 预测框架解析
  • SavingsPlan模型优化:AWS成本管理的性能飞跃
  • 从入门到精通【Redis】理解Redis持久化
  • 郑州做网站元辰提升学历的正规平台
  • 什么是无盘工作站?RARP用于无盘工作站等设备在启动时获取自己的 IP 地址。
  • Python在不同领域的应用案例
  • 《Muduo网络库:CMake构建集成编译环境》
  • IDEA services面板+自动运行项目
  • 云原生网关Higress介绍与部署指南
  • 手机网站是怎么做的图片设计制作软件
  • 亚像素边缘检测思想