一、项目介绍与部署
1.1微商城功能介绍
轻商城是一个电商项目,需要综合评估各个项目各个接口的功能,给出优化建议;
功能框架
- 前台:首页、商品页详情、加入购物车、订单、支付、团购、优惠券;
- 后台:商品管理、会员管理、商城管理
1.2轻商城项目的技术介绍
前端(看得到的部分---HTML、JS技术实现):
- 微信小程序
- web页面
后端(看不到的部分---通过后端技术代码实现JAVA):
- 服务器(应用服务器、数据库服务器、后台业务逻辑代码)
1)轻商城是一个支持web和微信小程序的前后端分离的项目。
- 前后端分离可以理解为前端系统与后端分离成两个子项目进行开发:
- 对外表现是:前后端分离项目前端发送请求后响应的内容为json字符串;
- 如果是前后端不分离的项目,响应的是HTML页面
前后端分离的项目与不分离的项目相比:
运行效率高 :数据传输时只需要传输基本数据即可,不需要传递html格式;
扩展性好:前后端分离是通过数据接口传递,只要借口不改变,前端代码可以添加任何想添加的功能,后端代码也是可以独自加功能,若前后端耦合,加功能需要前后端一起动。
2)前端使用VUE技术框架开发,即支持微信小程序,也支持手机移动端,还支持web页面。
3)后端使用了SpringBoot框架进行开发,MySql做数据库。
4)目前还在开发完善阶段
1.3微商城项目的技术构架
技术构架图:
1.4熟悉数据库设计
在性能测试前需要对要测试的部分业务功能涉及到的数据库表有一定了解;
1)熟悉数据库设计结构,便于后期对数据库的性能监控;
2)性能测试过程中,数据库容易出现瓶颈;
1.5 微商城项目的部署过程
准备工作:
安装JDK
安装MySQL
安装Nginx
安装node.js
项目搭建步骤:
项目部署过程:
二、性能测试需求分析
-
功能测试:关注需求规格中的业务功能(正向、逆向)
-
性能测试:关注系统对特定业务需求场景的满足程度(时间、资源)
-
关注维度:业务功能、项目代码、服务器、硬件配置
-
2.1性能需求获取
1)客户提出(客户可以是甲方,也可以是产品)
-
能够明确提出需求的一般都是金融、银行、电信、医疗相关的行业软件
-
即使是客户提出的需求,需要做初步评估需求的合理性
2)根据历史数据分析(根据软件在运行过程中的运营数据来计算出应该达成的性能指标)
-
日活 —— 初步评估稳定性负载
-
峰值 —— 初步评估压力负载
2.2新能测试点提取
性能测试点提取规则:
轻商城性能测试点提取:
- 1)根据性能测试点的提取规则,结合轻商城项目的功能,整理出要进行性能测试的测试点;
- 2)通过使用前面讲解的获取性能指标的方法(产品给/运营数据计算),得到每个测试点要满足的性能指标
- 3)确定性能测试目标:
- 针对每个核心的业务功能都要求达到对应的性能指标要求
- 基于业务流程(多个接口组合)来测试是否达到性能指标要求
- 模拟用户真实业务场景,进行长时间的稳定性测试
2.3性能测试计划(这部分与上面有重合之处,前面是思考点,最后都要落实在测试计划文档中)
1)测试背景
轻商城是公司新开发的一个电商项目,为了保证项目上线后能够稳定运行,且在后期推广中能够承受用户增长,需要对项目进行性能测试;
2)测试目的
- 确定核心业务功能的TPS
- 对业务流程(多接口组合)进行压测
- 系统能在实际系统运行压力的情况下,稳定运行24小时
编号 | 功能模块 | 业务功能 | TPS | 响应时间 |
T01 | 登录 | 登录 | 20 | 3s |
T02 | 首页 | 进入首页 | 100 | 5s |
T03 | 商品 | 搜索商品 | 40 | 3s |
T04 | 商品 | 查看商品详情 | 100 | 3s |
T05 | 购物车 | 添加购物车 | 20 | 3s |
T06 | 购物车 | 查看购物车 | 20 | 3s |
T07 | 订单 | 商品结算 | 10 | 3s |
T08 | 订单 | 提交订单 | 10 | 3s |
T09 | 订单 | 查看我的订单 | 40 | 2s |
3)测试范围
编号 | 功 |