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

性能测试总结-根据工作经验总结还比较全面

性能测试总结

  • 性能测试理论
    • 性能测试的策略
      • 基准测试
      • 负载测试
      • 稳定性测试
      • 压力测试
      • 并发测试
    • 性能测试的指标
      • 响应时间
      • 并发数
      • 吞吐量
      • 资源指标
    • 性能测试流程
    • 性能测试工具
      • JMeter基本使用
        • 元件构成
        • 线程组
        • jmeter的分布式使用
    • jmeter测试报告
    • 常用插件
    • 性能测试的计算
      • 1.根据请求数明细数据计算满足的tps
      • 根据订单总量随时间变化计算测试并发数
      • 根据峰值计算

性能测试理论

性能测试的策略

注意这几个策略是要做压测的类型,基本工作中性能测试都要做,基本测试报告中都要有体现,
基准测试提供基础 测试依据;
负载测试测试不同负载下的压力标准;
稳定性测试 测试8小时以上的系统稳定性;
压力测试 测试高压下的稳定性;
并发测试 测试是否能经受住高并发;

基准测试

狭义上讲:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。

广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能
基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。

负载测试

通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能够承受的最大负载量的测试。

稳定性测试

服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试
(1天-1周等),并最终保证服务器能满足线上业务需求。

·其他:并发测试、压力测试等

压力测试

在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。

✓	极限负载情况下导致系统崩溃的破坏性压力测试
✓	高负载下的长时间的稳定性压力测试

并发测试

并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证
服务器对井发的处理能力。

性能测试的指标

响应时间

响应时问:指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。

并发数

并发(用户)数:某一时刻同时向服务器发送请求的用户数。

吞吐量

吞吐量 (Througbput):指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。

QPS (Query Per second)每秒查询数:即控制服务器每秒处理的指定
请求的数量

TPS (Transactions Per second) 每秒事务数:即控制服务器每秒
处理的事务请求的数量

•	 点击数
•	 错误率
•	 资源利用率

资源指标

根据经验,资源指标通常要求:
(1) CPU不高于75-85
(2) 内存不高于80
(3)磁盛工O不高子90
(4)网络不高于80

性能测试流程

在这里插入图片描述

性能测试工具

工具
. Loadrunner
• JMeter

JMeter基本使用

元件构成

取样器
逻辑控制器
前罝处理器
后罝处理器
断言
定时器
测试片段
配置元件
监听器

在这里插入图片描述

线程组

在这里插入图片描述

jmeter的分布式使用

jmeter分布式原理是一台主机下配置多台代理机;通过代理进行测试并将测试结果交给主机进行分析处理。
在这里插入图片描述
具体代理机和主机的配置如下图

在这里插入图片描述

配置完成后需要在代理机上启动jmeter-server;然后在主机上发起。

在这里插入图片描述

jmeter测试报告

jmeter可以通过命令行方式调用,这样生成报告比较方便,就在报告这里简单说下jmeter的命令行参数。

jmeter -n -t 脚本名.jmx -l test.txt -e -o ./outHtml

上面实例是运行测试脚本并测试完成后解析并生成报告

  • -n 无图像界面
  • -t 脚本文件
  • -l 日志
  • -e 生成报告
  • -o 输出 (-e -o 要一起用)

当然也可以执行不生成报告而需要时再根据日志文件生成报告命令如下:

jmeter -g test.txt -o ./httpOut

特别注意**:
jmeter是要配置环境变量的,不配置的话上述命令中jmeter前面要加上jmeter的路径,就是jmeter的解压路径下bin的下面。

常用插件

常用如下插件

  • Basic Graphs
  • Additionally Graphs
  • Custom Thread Groups
  • PerfMon

PerfMon可以用来监控测试机器的各项指标非常好用。总结下perfMon的使用下面:

在这里插入图片描述

在这里插入图片描述
非常简单就是你得在被监控的机器上启动代理啊,代理包就是ServerAgent这个包。启动下就可以。

性能测试的计算

性能测试怎么来决定需要多少机器多少负载呢,这个一个是取决于机器本身的性能,然后就是基于生产上的数据来估量计算了;基本计算方式如下。

1.根据请求数明细数据计算满足的tps

一般情况下能满足需求的tps计算公式:

计算tps = 总请求数 / 总时间

但是应用中不会有那么稳定的数据,工作中我们都会应用二八原则,既百分之八十的业务都发生在百分之二十的时间。所以公式如下。

计算tps = (总请求数 * 80%) / (总时间 * 20%)

根据订单总量随时间变化计算测试并发数

在这里插入图片描述

根据峰值计算

在这里插入图片描述

相关文章:

性能测试总结-根据工作经验总结还比较全面

性能测试总结性能测试理论性能测试的策略基准测试负载测试稳定性测试压力测试并发测试性能测试的指标响应时间并发数吞吐量资源指标性能测试流程性能测试工具JMeter基本使用元件构成线程组jmeter的分布式使用jmeter测试报告常用插件性能测试的计算1.根据请求数明细数据计算满足…...

类型断言[as语法 | <> 语法

TypeScript中的类型断言[as语法 | <> 语法] https://huaweicloud.csdn.net/638f0fbbdacf622b8df8e283.html?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2~default~CTRLIST~activity-1-107633405-blog-122438115.2…...

barret reduction原理详解及硬件优化

背景介绍 约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等…...

NLP / LLMs中的Temperature 是什么?

ChatGPT, GPT-3, GPT-3.5, GPT-4, LLaMA, Bard等大型语言模型的一个重要的超参数 大型语言模型能够根据给定的上下文或提示生成新文本,由于神经网络等深度学习技术的进步,这些模型越来越受欢迎。可用于控制生成语言模型行为的关键参数之一是Temperature …...

c#快速入门~在java基础上,知道C#和JAVA 的不同即可

☺ 观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C#,当然不是说学C#的前提是需要java,而是下文是从主语言是java的情况下&#xff…...

nginx--基本配置

目录 1.安装目录 2.文件详解 2.编译参数 3.Nginx基本配置语法 1./etc/nginx/nginx.conf 2./etc/nginx/conf.d/default.conf 3.启动重启命令 4.设置404跳转页面 1./etc/nginx/conf.d/default.conf修改 ​2. 重启 5.最前面内容模块 6.事件模块 1.安装目录 # etc cd …...

R语言中apply系列函数详解

文章目录applylapply, sapply, vapplyrapplytapplymapplyR语言系列: 编程基础💎循环语句💎向量、矩阵和数组💎列表、数据帧排序函数💎apply系列函数 R语言的循环效率并不高,所以并不推荐循环以及循环嵌套…...

红黑树探险:从理论到实践,一站式掌握C++红黑树

红黑树揭秘:从理论到实践,一站式掌握C红黑树引言为什么需要了解红黑树?红黑树在现代C编程中的应用场景树与平衡二叉搜索树树的基本概念:二叉搜索树的定义与性质:平衡二叉搜索树的特点与需求:红黑树基础红黑…...

CDH6.3.2大数据集群生产环境安装(七)之PHOENIX组件安装

添加phoenix组件 27.1. 准备安装资源包 27.2. 拷贝资源包到相应位置 拷贝PHOENIX-1.0.jar到/opt/cloudera/csd/ 拷贝PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha、PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel到/opt/cloudera/parcel-repo 27.3. 进入cm页面进行分发、…...

【C++要笑着学】搜索二叉树 (SBTree) | K 模型 | KV 模型

C 表情包趣味教程 👉 《C要笑着学》 💭 写在前面:半年没更 C 专栏了,上一次更新还是去年九月份,被朋友催更很久了hhh 本章倒回数据结构专栏去讲解搜索二叉树,主要原因是讲解 map 和 set 的特性需要二叉搜索…...

微信小程序开发 | 小程序开发框架

小程序开发框架7.1 小程序模块化开发7.1.1 模块7.1.2 模板7.1.3 自定义组件7.1.4插件7.2 小程序基础样式库—WeUI7.2.1 初识WeUI7.2.2【案例】电影信息展示7.3 使用vue.js开发小程序7.3.1 初识mpvue7.3.2 开发工具7.3.3 项目结构7.3.4【案例】计数器7.4 小程序组件化开发框架7.…...

气候系统设计

基础概念 一个星球(例如地球)的气候系统主要是一些基本参数基于公转周期(年)和自转周期(日)的变化,这其中会有两个变化因素:地理位置(经纬度)和天气变化&…...

如何使用Thymeleaf给web项目中的网页渲染显示动态数据?

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 服务器软件:apache-tomcat-8.5.27 目录一. 什么是Thymeleaf?二. MVC2.1 为什么需要MVC?2.2 MVC是什么?2.3 MVC和三层架构之间的关系及工…...

01 | 电机常用语

1 电机常用术语 1.1 原点 原点是指步进电机在驱动直线运动机构时的起始点。 1.2 点动 点动是电动机控制方式中的一种。 点动由于在这一控制回路中没有自保,也没有并接其它的自动装置,只是按下控制回路的启动按钮,主回路才通电,松开启动按钮,主回路就没电了。最典型的是…...

Leetcode.2601 质数减法运算

题目链接 Leetcode.2601 质数减法运算 Rating : 1779 题目描述 给你一个下标从 0 开始的整数数组 nums,数组长度为 n 。 你可以执行无限次下述运算: 选择一个之前未选过的下标 i ,并选择一个 严格小于 nums[i]的质数 ppp &…...

DP7416国产192K数字音频接收芯片兼容替代CS8416

目录192K 数字音频应用DP7416简介芯片特性192K 数字音频应用 采样率192khz,能将192,000hz以下的频率都录下来,而且对声波每秒连续采样192,000次。在回放的时候,这192,000个采样点按顺序播放,从而还原原来的声音。   过采样技术除…...

全球土壤湿度数据获取方法

土壤湿度亦称土壤含水率,表示土壤干湿程度的物理量。是土壤含水量的一种相对变量。通常用土壤含水量占干土重的百分数是示,亦称土壤质量湿度,如用土壤水分容积占土壤总容积的百分数表示,则称土壤容积湿度。通常说的土壤湿度&#…...

在proteus中仿真arduino实现矩阵键盘程序

矩阵键盘是可以解决我们端口缺乏的问题,当然,如果我们使用芯片来实现矩阵键盘的输入端口缺乏的问题将更加划算了,本文暂时不使用芯片来解决问题,而使用纯朴的8根线来实现矩阵键盘,目的是使初学者掌握原理。想了解使用芯…...

【ROS2指南-5】理解ROS2服务

目标:使用命令行工具了解 ROS 2 中的服务。 教程级别:初学者 时间: 10分钟 内容 背景 先决条件 任务 1 设置 2 ros2服务列表 3 ros2服务类型 4 ros2 服务查找 5 ros2界面展示 6 ros2 服务调用 概括 下一步 相关内容 背景 服务是 …...

探索Apache Hudi核心概念 (3) - Compaction

Compaction是MOR表的一项核心机制,Hudi利用Compaction将MOR表产生的Log File合并到新的Base File中。本文我们会通过Notebook介绍并演示Compaction的运行机制,帮助您理解其工作原理和相关配置。 1. 运行 Notebook 本文使用的Notebook是:《A…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...