软件测试--性能测试实战篇

软件测试--性能测试实战篇

  • 项目介绍和部署
    • 1. 轻商城项目介绍
      • 1.1 背景
      • 1.2 简介
    • 2. 项目功能架构
    • 3. 项目技术架构
    • 4. 熟悉数据库设计
    • 5. 轻商城项目搭建
      • 5.1 准备工作
      • 5.2 项目搭建步骤
  • 性能测试需求分析
    • 1. 性能测试需求分析
      • 1.1 如何获取有效的需求
    • 2. 性能测试点的提取
      • 2.1 性能测试点的提取规则
      • 2.2 轻商城性能测试点的提取
    • 3. 确定性能测试目标
  • 性能测试计划
    • 1. 测试背景
    • 2. 测试目的
    • 3. 测试范围
    • 4. 测试策略
      • 4.1 基准测试
      • 4.2 负载测试
      • 4.3 稳定性测试
    • 5. 风险控制
    • 6. 交付清单
    • 7. 进度与分工
  • 测试用例设计
    • 1. 编写性能测试用例
  • 测试脚本开发
    • 1. 测试脚本开发
      • 1.1 常用测试元件
      • 1.2 初始化工作
      • 1.3 实现测试用例
  • 搭建测试环境
    • 1. 建立测试环境
      • 1.1 性能测试环境的特点
      • 1.2 如何保证测试环境与生产环境的一致性
    • 2. 构造测试数据
      • 2.1 构造商品数据
  • 执行测试脚本
    • 1. 执行测试脚本的测试机
    • 2. 分布式执行
      • 2.1 分布式压测条件
      • 2.2 修改JMeter配置信息
      • 2.3 启动执行机
        • 2.4 启动控制机
  • 性能测试监控
    • 1. 性能测试监控关键指标
    • 2. 性能监控工具
    • 3. 服务器资源
    • 4. MySQL监控
      • 4.1 Mysql常用监控指标
      • 4.2 开启MySQL慢查询日志
    • 5. JVM监控
    • 实例
      • 登录脚本:
        • 1、准备数据
        • 2、修改脚本
        • 3、监控性能指标
        • 4、模拟并发
      • 进⼊⾸⻚脚本:
      • 加⼊购物⻋脚本:
        • 1、数据准备⼯作:
        • 2、脚本修改:
        • 3、运⾏并分析结果:
      • 结算并下订单脚本:
        • 修改测试脚本:
        • 执⾏测试脚本:
      • 业务流程的测试:
        • 步骤:
      • 稳定性测试:
        • 稳定性⽤例设计:
        • 稳定性测试执⾏:
  • 性能分析和调优
    • 1. 性能测试瓶颈分析
      • 常见性能瓶颈分析:
        • 服务器资源分析 —— CPU瓶颈
        • 服务器资源分析 —— 内存瓶颈
        • 服务器资源分析 —— 磁盘IO瓶颈
        • 服务器资源分析 —— 网络瓶颈
        • 数据库瓶颈分析 —— 慢查询
        • 数据库瓶颈分析 —— 数据库连接池
        • 数据库瓶颈分析 —— 数据库死锁
        • JAVA应用瓶颈分析 —— JVM内存
        • JAVA应用瓶颈分析 —— JVM内存分析
        • JAVA应用瓶颈分析 —— JVM内存监控
        • 压测机瓶颈分析 —— 压测机
    • 2. 性能调优
      • 2.1 性能调优的步骤
    • 3. 性能调优案例
      • 3.1 获取首页数据
        • 场景描述
        • 测试结果数据
        • 问题分析:
        • 解决方案:
      • 3.2 查看商品详情
        • 场景描述:
        • 测试结果数据:
        • 问题分析
        • 解决方案
      • 3.3 搜索商品
        • 场景描述
        • 测试结果数据
        • 问题分析
        • 解决方案
      • 3.4 JVM内存溢出
        • 场景描述
        • 测试结果数据
        • 问题分析
        • 解决方案
  • 编写测试报告
    • 编写测试报告的要点
    • 测试报告核心内容:
    • 1. 项目概况
    • 2. 测试目的
    • 3. 测试范围
    • 4. 测试环境及工具
      • 4.1 性能测试环境的基本配置
      • 4.2 测试工具
    • 5. 测试记录及结果分析
      • 5.1 单场景负载测试-获取首页数据
        • 场景描述
        • 测试结果数据
        • 问题分析
        • 解决方案

项目介绍和部署

1. 轻商城项目介绍

1.1 背景

轻商城项目是一个现在流行的电商项目。我们需要综合评估该项目中各个关键接口的性能,并给出优化建议,以
满足项目上线后的性能需要。

1.2 简介

  • 轻商城是一个支持web和微信小程序的前后端分离架构的项目。
  • 前端使用VUE技术框架开发,即支持微信小程序,也支持手机移动端,还支持web页面。
  • 后端使用了SpringBoot框架进行开发,MySQL做数据库。
  • 目前还在开发完善阶段。

2. 项目功能架构

  • 前台商城:

    • 首页
    • 专题列表、专题详情
    • 分类列表、分类详情
    • 品牌列表、品牌详情
    • 新品首发、人气推荐
    • 优惠券列表、优惠券选择
    • 团购
    • 搜索
    • 商品详情、商品评价、商品分享
    • 购物车
    • 下单
    • 订单列表、订单详情、订单售后
    • 地址、收藏、足迹、意见反馈
    • 客服
      在这里插入图片描述
  • 后台管理系统:

    • 会员管理
    • 商城管理
    • 商品管理
    • 推广管理
    • 系统管理
    • 配置管理
    • 统计报表
      在这里插入图片描述

3. 项目技术架构

技术栈

  • 前端:VUE技术框架开发,支持微信小程序、手机移动端、web界面
  • 后端:SpringBoot框架开发,MySQL做数据库

技术架构图
在这里插入图片描述

4. 熟悉数据库设计

作用:

  • 性能测试时,监控数据库的性能指标,定位bug
  • 构造测试数据

在这里插入图片描述

5. 轻商城项目搭建

5.1 准备工作

  • 安装JDK
  • 安装MySQL
  • 安装Nginx
  • 安装node.js

5.2 项目搭建步骤

  1. 获取项目源代码
    • 包括前端代码和后端代码
    • 实际工作当中项目源代码由开发提供,项目所需要的配置文件、启动项目的顺序也由开发提供文档介绍
  2. 构建轻商城后端代码
    • 编译、打包
    • 打包成jar包或war包
  3. 构建前端代码
    • 使用node.js打包
    • 部署包中包含HTML、JS、CSS等文件
  4. 初始化MySQL数据库
    • 项目启动前需要先初始化数据库
    • 执行初始化数据库的sql文件
      source /usr/local/litemall/litemall-db/litemall.sql
  5. 启动轻商城后台管理系统的后端服务
    java -jar litemall-all.jar
  6. 部署轻商城前端服务
    • 可以使用Nginx服务器
  7. 通过浏览器访问启动的前端,测试项目是否能够正常运行
    在这里插入图片描述

性能

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

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

相关文章

第五十二回 戴宗二取公孙胜 李逵独劈罗真人-飞桨AI框架安装和使用示例

吴用说只有公孙胜可以破法术,于是宋江请戴宗和李逵去蓟州。两人听说公孙胜的师傅罗真人在九宫县二仙山讲经,于是到了二仙山,并在山下找到了公孙胜的家。 两人请公孙胜去帮助打高唐州,公孙胜说听师傅的。罗真人说出家人不管闲事&a…

SpringMVC 中的常用注解和用法

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 注解 1. MVC定义2. 注解2.1 RequestMappin…

leetcode:LCR 006. 两数之和 II - 输入有序数组(python3解法)

难度&#xff1a;简单 给定一个已按照 升序排列 的整数数组 numbers &#xff0c;请你从数组中找出两个数满足相加之和等于目标数 target 。 函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 &#xff0c;所以答案数组应当满足 0 <…

el-dialog封装组件

父页面 <template><div><el-button type"primary" click"visible true">展示弹窗</el-button><!-- 弹窗组件 --><PlayVideo v-if"visible" :visible.syncvisible /></div> </template><sc…

谷粒学院--在线教育实战项目【一】

谷粒学院--在线教育实战项目【一】 一、项目概述1.1.项目来源1.2.功能简介1.3.技术架构 二、Mybatis-Plus概述2.1.简介2.2.特性 三、Mybatis-Plus入门3.1.创建数据库3.2.创建 User 表3.3.初始化一个SpringBoot工程3.4.在Pom文件中引入SpringBoot和Mybatis-Plus相关依赖3.5.第一…

融资项目——OpenFeign的降级与熔断

当一个微服务调用其他微服务时&#xff0c;如果被调用的微服务因各种原因无法在规定时间内提供服务&#xff0c;则可以直接使用本地的服务作为备选&#xff0c;即进行降级熔断。 如之前所提到的微服务为例&#xff1a; 如果希望实现降级熔断&#xff0c;可以在本地创建一个实现…

AI改变游戏规则:内容创作的新时代!

AI技术&#xff0c;尤其是人工智能&#xff08;AI&#xff09;在内容创作领域的应用&#xff0c;正开启了一个全新的时代。这一时代的核心在于利用AI的能力&#xff0c;不仅提高内容创作的效率&#xff0c;还能引入前所未有的创新元素&#xff0c;从而彻底改变游戏规则。 AI在…

OpenCV与AI深度学习 | 基于OpenCV实现模糊检测 / 自动对焦

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;基于OpenCV实现模糊检测 / 自动对焦 导 读 本文主要介绍使用OpenCV实现图像模糊检测/相机自动对焦功能。 前 言 为了检测图片是否对焦&…

coqui-ai/TTS 案例model文件

GitHub - coqui-ai/TTS: &#x1f438;&#x1f4ac; - a deep learning toolkit for Text-to-Speech, battle-tested in research and production Coqui AI的TTS是一款开源深度学习文本转语音工具&#xff0c;以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库&…

C#,哈夫曼编码(Huffman Code)压缩(Compress )与解压缩(Decompress)算法与源代码

David A. Huffman 1 哈夫曼编码简史&#xff08;Huffman code&#xff09; 1951年&#xff0c;哈夫曼和他在MIT信息论的同学需要选择是完成学期报告还是期末考试。导师Robert M. Fano给他们的学期报告的题目是&#xff0c;寻找最有效的二进制编码。由于无法证明哪个已有编码是…

java编程的简化表达方法——Lambda表达式及方法引用概述

前言&#xff1a; 学到简化写法了&#xff0c;感觉需要对代码非常熟悉才能用得好&#xff0c;整理下写法。打好基础&#xff0c;daydayup! Lambda表达式 Lambda表达式是JDK8开始新增得一种语法形式&#xff1b;作用&#xff1a;用于简化匿名内部类的代码写法。 Lambda表达式的格…

蓝桥杯嵌入式模板构建——RCT时钟

在CubeMX里的RTC模块启用RTC时钟和日历功能 输入到RTC的时钟要配置成1HZ,这样的话RTC每经过1s走时一次 由于RTC时钟默认配置为32Khz 所以我们需要将异步分频值与同步分频值的乘积调整为32K分频即可一秒走时一次 频率&#xff1a;32000hz / 32000hz 1hz 必须是31和999&#…

阿珊详解Vue路由的两种模式:hash模式与history模式

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

计算机网络面经-HTTPS加密过程

前言 在上篇文章HTTPS详解一中&#xff0c;我已经为大家介绍了 HTTPS 的详细原理和通信流程&#xff0c;但总感觉少了点什么&#xff0c;应该是少了对安全层的针对性介绍&#xff0c;那么这篇文章就算是对HTTPS 详解一的补充吧。还记得这张图吧。 HTTPS 和 HTTP的区别 显然&am…

idea Gradle 控制台中文乱码

如下图所示&#xff0c;idea 中的 Gradle 控制台中文乱码&#xff1a; 解决方法&#xff0c;如下图所示&#xff1a; 注意&#xff1a;如果你的 idea 使用 crack 等方式破解了&#xff0c;那么你可能需要在文件 crack-2023\jetbra\vmoptions\idea.vmoptions 中进行配置&#xf…

Java引用传递及基本应用

在 Java 中&#xff0c;传递参数的方式主要有两种&#xff1a;值传递&#xff08;传递的是对象的引用值&#xff09;和引用传递。本教程将重点介绍 Java 中的引用传递以及其基本应用。 1. 引用传递概念 在 Java 中&#xff0c;所有的方法参数都是通过值传递的。对于对象类型的…

MAC 的vscode菜单栏怎么调?

我去&#xff0c;这个bug找到了半天&#xff0c;终于找到正解了&#xff0c;仅记录&#xff0c;为广大和我一样不熟悉mac的兄弟们避坑。 正解&#xff1a;mac的vscode的菜单栏在屏幕最顶上&#xff0c;不用调出来&#xff0c;人家一直都有。

Redis集群(哨兵集群)

一.Sentinel作用和原理: 1.作用 监控:Sentinel会不断监控master和slave是否按预期工作. 自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也会以新的master为主。 通知&#xff1a;Sentinel充当redis客户端的服务发现来源,当集群发生故障…

SAP MM学习笔记44 - 特殊调达流程 - Blanket购买发注(汇总采购)

上一章学习了 支付计划&#xff0c;本章继续学习 Blanket购买发注&#xff08;汇总采购&#xff09;。 SAP MM学习笔记43 - 特殊调达流程 - 支付计划-CSDN博客 1&#xff0c;Blanket购买发注 概要 其实就是订好一个大致数额&#xff0c;然后让随便买&#xff0c;只要不超这个…

一篇文章教会你Python+selenium自动化生成测试报告

前言 批量执行完用例后&#xff0c;生成的测试报告是文本形式的&#xff0c;不够直观&#xff0c;为了更好的展示测试报告&#xff0c;最好是生成HTML格式的。 unittest里面是不能生成html格式报告的&#xff0c;需要导入一个第三方的模块&#xff1a;HTMLTestRunner 一、导…