《微聊》JMeter性能测试报告

文章目录

  • 准备工作
    • JMeter准备工作
    • 本地配置代理
  • 测试规划
    • 测试方向
    • 预期方向
    • 异常处理
  • 压力测试录制
    • 注册功能压力
      • 注册功能压力脚本录制
      • 录制功能压力测试脚本完善
      • 注册功能压力测试结果
    • 登录功能压力
      • 录制登录功能压力测试脚本
      • 构造压力测试数据
      • 完善登录功能性能测试脚本
      • 登录功能压力测试结果
    • 发布动态压力测试
      • 发布动态脚本录制
      • 完善登录功能性能测试脚本
      • 完善发布动态功能脚本
      • 发布动态功能压力测试结果
  • 总结


​👑作者主页:Java冰激凌


准备工作

JMeter准备工作

服务器配置(Linux CentOS 7 CPU - 2核 内存 - 2GB)
​新建测试计划 -> 用于管理测试脚本
添加线程组 -> 用于并发压力测试
添加HTTP代理服务器 -> 用于监听指定端口
添加结果树 -> 用于查看结果
添加聚合报告 -> 生成性能测试报告(平均值、90%/95%/99%百分比、异常、吞吐率)

本地配置代理

配置本机代理

测试规划

测试方向

  1. 注册功能压力测试
  2. 登录功能压力测试
  3. 发布动态压力测试

预期方向

  1. 注册功能目标一分钟处理500个事务 TPS = 500 / 60 = 8.3
  2. 登录功能目标一分钟处理500个事务 TPS = 500 / 60 = 8.3
  3. 发布动态目标一分钟处理500个事务 TPS = 500 / 60 = 8.3

异常处理

上述压力测试方向如出现异常、不满足需即使提交后端修复或进行优化

压力测试录制

注册功能压力

注册功能压力脚本录制

在这里插入图片描述

录制功能压力测试脚本完善

为了保证注册的用户不唯一 增加随机性,在满足账号密码要求的前提下生成随机的字符串
在这里插入图片描述

注册功能压力测试结果

在这里插入图片描述
可以满足预期结果 TPS 最低值为 14.1 符合预期目标
注册功能压力测试通过!

登录功能压力

录制登录功能压力测试脚本

在这里插入图片描述

构造压力测试数据

本次数据由于数据库中的是密码是加盐MD5进行加密 所以采取构造新数据测试
在这里插入图片描述

完善登录功能性能测试脚本

账号密码使用CSV进行构造 验证码使用特殊处理解决
在这里插入图片描述

登录功能压力测试结果

在这里插入图片描述
未满足预期结果 TPS 最低值为 2.4 不符合预期目标
登录功能压力测试不通过!

发布动态压力测试

发布动态脚本录制

在这里插入图片描述

完善登录功能性能测试脚本

账号密码使用CSV进行构造 验证码使用特殊处理解决
在这里插入图片描述

完善发布动态功能脚本

在这里插入图片描述
添加计时器的原因是要等待发布成功猜可以进行删除 所以需要进行一定时间的等待

发布动态功能压力测试结果

在这里插入图片描述
未满足预期结果 TPS 最低值为 2.3 不符合预期目标
发布朋友圈功能压力测试不通过!


总结

本次性能测试主要针对系统进行了全面的测试,包括负载测试、压力测试、稳定性测试等。通过对系统的测试,得出以下结论:

  1. 系统在正常负载下表现良好,响应时间稳定在可接受范围内。在负载逐渐增加的情况下,系统的响应时间也能够得到控制,没有出现明显的性能瓶颈。
  2. 系统在高负载情况下表现较为稳定,能够处理大量的并发请求。在压力测试中,系统能够持续处理每秒数百个请求,并且响应时间仍然保持在可接受范围内。
  3. 系统在长时间运行下表现稳定,没有出现明显的性能下降或崩溃的情况。稳定性测试中,系统连续运行了数小时,期间没有出现任何异常情况。
  4. 系统在处理大量数据时表现较差,不能够快速响应用户的请求。

综上所述,系统在性能方面表现中等,基本能够满足用户的需求。然而,为了进一步提升系统的性能,我们建议进行以下优化:

  1. 对系统进行进一步的压力测试,以确定系统在更高负载下的表现。通过模拟更多的并发请求,可以更好地评估系统的性能瓶颈,并进行相应的优化。
  2. 对系统的数据库进行优化,以提高数据的读写效率。可以通过建立索引、优化查询语句等方式来提升数据库的性能。
  3. 对系统的代码进行优化,以提高系统的响应速度。可以通过减少不必要的计算、优化算法等方式来提升系统的执行效率。
  4. 对系统的硬件进行升级,以提高系统的处理能力。可以通过增加服务器的CPU、内存等资源来提升系统的性能。
    通过以上的优化措施,相信系统的性能将会得到进一步提升,能够更好地满足用户的需求。

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

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

相关文章

13年测试老鸟,软件测试经验总结分享,这几年你走了多少坑...

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

NLP之LSTM原理剖析

文章目录 背景simpleRNN的局限性 LSTM手写一下sigmoid例子支持长记忆的神经网络解读3重门 背景 SimpleRNN有一定局限性, 图片上的文字内容: 图片标题提到“SimpleRNN是一种基础模型。它用于解决序列型问题,其中的每一步的输出会影响到下一步的结果。图…

7+共病思路。WGCNA+多机器学习+实验简单验证,易操作

今天给同学们分享一篇共病WGCNA多机器学习实验的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”,这篇文章于2023年5月16日发…

linux常用命令大全

以下是一些常用的 Linux 命令: ls:列出当前目录下的文件和文件夹。 cd:切换到指定目录。 pwd:显示当前所在的目录。 mkdir:创建一个新的目录。 rm:删除文件或目录。请注意,这是一个非常危险…

Java操作word

生命无罪,健康万岁,我是laity。 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之…

类脑计算与大规模拓扑分析的几个关键技术问题

类脑计算与大规模拓扑分析的几个关键技术问题 1:构造一个类脑模型,需要我们实现自动拓扑模型构造模块,而现在的水平是人工手动编辑,费时费力,模型的尺度也很有限 2:在神经元这个层次里面,我们需…

【NI-DAQmx入门】传感器基础知识

1.什么是传感器? 传感器可将真实的现象(例如温度或压力)转换为可测量的电流和电压,因而对于数据采集应用必不可少。接下来我们将介绍您所需的测量类型及其对应的传感器类型。在开始之前,您还可以先了解一些传感器术语&…

SpringBoot面试题8:运行 Spring Boot 有哪几种方式?Spring Boot 需要独立的容器运行吗?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:运行 Spring Boot 有哪几种方式? 运行Spring Boot应用有多种方式,具体取决于你的需求和环境。以下是几种常见的运行Spring Boot应用的方式: 使…

Linux进程程序替换

一、单进程下的程序替换 使用execl进行程序替换,先执行execl前面的代码,在execl处替换成其它进程的代码和数据继续执行,后面的内容就不执行了,因此只打印before 二、程序替换原理 前面我们fork创建子进程,子进程会继承…

在全新ubuntu上用gpu训练paddleocr模型遇到的坑与解决办法

目录 一. 我的ubuntu版本![在这里插入图片描述](https://img-blog.csdnimg.cn/297945917309494ab03b50764e6fb775.png)二.首先拉取paddleocr源代码三.下载模型四.训练前的准备1.在源代码文件夹里创造一个自己放东西的文件2.准备数据2.1数据标注2.2数据划分 3.改写yml配置文件4.…

PostGreSQL:数据表继承

PostGreSQL手册的简史部分介绍到:被称为PostGreSQL的对象关系型数据库管理系统,由美国加州大学伯克利 分校编写的POSTGRES软件包发展而来。经过十几年的发展,PostGreSQL目前是世界上最先进的开源数据库。 The object-relational database man…

C++编程题目------平面上的最接近点对(分治算法)

题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的。 输入格式 第一行一个整数 n,表示点的个数。 接下来 n 行,每行两个实数 x,y ,表示一个点的行…

torch.distributed.elastic.multiprocessing.api: [ERROR] failed (exitcode: -7)

在docker中运行时,由于配置的共享内存不足导致。新建docker时,shm-size设个大点的值。 不设置时,默认值时64M

Vue 的双向数据绑定是如何实现的?

目录 1. 响应式数据 2. v-model 指令 3. 实现原理 4. 总结 Vue.js 是一款流行的前端 JavaScript 框架,它以其强大的双向数据绑定能力而闻名。双向数据绑定使得数据在视图和模型之间保持同步,并且任一方的变化都会自动反映到另一方。那么,…

数据库和表的相关操作

文章目录 一 数据库的相关操作1.1 显示当前所有的数据库1.2 创建数据库1.3 使用数据库1.4 删除数据库 二 常用数据类型2.1 数值类型2.2 字符串类型2.3 日期类型 三 表的操作3.1 创建表3.2 查看表结构3.3 查看有哪些表3.4 删除表 四 重点内容总结 一 数据库的相关操作 1.1 显示…

python: 判断一个变量是不是class类

在一些时候,我们对函数或者类实例化的时候的传参进行判断是否是类,并做相应实例化处理,那么需要判断是否其是类(也就是你自建的 class XXX) 所以要想判断一个变量是不是类,总结了下面几种办法。 1. try except try:obj MyVari…

2021-arxiv-GPT Understands, Too

2021-arxiv-GPT Understands, Too Paper: https://arxiv.org/abs/2103.10385 Code: https://github.com/THUDM/P-tuning Prompt 简单理解 举例来讲,今天如果有这样两句评论: 1. 什么苹果啊,都没有苹果味&#xff0c…

rust std

目录 一,std基本数据结构 1,std::option 2,std::result 二,std容器 1,vector 三,std算法 1,排序 2,二分 (1)vector二分 (2)…

【C++代码】分割等和子集,目标和,一和零,零钱兑换,动态规划--代码随想录

题目&#xff1a;分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 初步想法排序后双指针&#xff0c;发现不行 class Solution { public:bool canPartition(vector<int>&…

计讯物联外贸公司--佰沃恩应邀出席第三届“嘉庚论坛”—科技创新推动经济高质量发展分论坛

10月22日&#xff0c;以“数智创新能动未来”为主题的第三届“嘉庚论坛”—科技创新推动经济高质量发展分论坛于集美海景皇冠假日酒店正式启幕。此论坛聚焦集美区战略前沿产业&#xff0c;汇聚来自全国各地优秀的企业家、高校及科研院所专家学者&#xff0c;并邀请相关领域的亲…