性能测试(LoadRunner)

news2024/11/19 23:14:28

文章目录

  • 1. 性能测试概述
  • 2. 常见的性能指标
  • 3. 性能测试的分类
  • 4. loadRunner 工具的介绍
  • 5. 使用 VUG
    • 4.1 打开 LR 自带的 web 系统
    • 4.2 编写性能测试脚本
  • 6. 性能测试脚本的增强
    • 6.1 事务(lr_start/end_transaction)
    • 6.2 集合点(lr_rendzvous)
    • 6.3 检查点(web_reg_find)
    • 6.4 参数化
    • 6.5 日志设置
  • 7. 脚本录制
  • 8. Controller 工具的使用
  • 9. Analysis 工具的使用

1. 性能测试概述

性能测试的好坏最终都需要通过数据来展示,通过性能指标对应的数据来判定性能的好坏。

2. 常见的性能指标

并发用户数、响应时间、事务响应时间&每秒事务通过数、点击率、吞吐量、资源利用率

  1. 并发用户数

并发用户会对系统造成压力。

业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。

后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量。

(并不是只要发出请求,服务器就一定会造成压力)

并发强调大量用户和同时性的操作时,才会对服务器造成压力。

  1. 响应时间

响应时间分为前端展示时间和系统响应时间两部分。

前端展示时间指的是客户端收到服务器返回的数据渲染前端页面,所耗费的时间。

系统的响应时间,分为 web服务器,应用服务器,数据库服务器等各种服务器之间通信和处理请求的时间。

  1. 事务响应时间& 每秒事务通过数(TPS)

比如:使用电子支付操作时,可能后台处理需要经过账务系统,支持系统,银行系统等,这就是一个关于电子支付事务中包含的操作。

对于用户来说,一般只是关注整个支付花费了多长时间。而这一整个事务的过程就叫事务的响应时间

每秒事务通过数,通常指的是每秒成功完成的事务数,这是衡量系统处理能力的重要指标。

每秒事务通过数越高,性能越好(这个是相对的,不同的系统要求不同,有些事务比较复杂)

  1. 点击率

每秒点击数代表用户向服务器提交的请求数,点击率越大,服务器的压力越大。

注意:这里的点击并不是鼠标的一次点击,一次点击可能有多个请求。

  1. 吞吐量

单位时间内系统处理的客户请求数量,直接体现软件系统的性能承受能力。

吞吐量受服务器性能和网络性能的影响。单位: bytes/s

  1. 资源利用率

不同系统资源的使用情况,包含 CPU、内存、硬盘、网络等。

3. 性能测试的分类

一般性能测试、负载测试、压力测试、稳定性测试

  1. 一般性能测试

正常情况下和系统条件下是否满足性能指标。

  1. 负载测试

验证系统在一定压力下延长系统的运行时间,直到系统出现 “拐点”

  1. 压力测试

验证系统在已经处于极限负载下或者某指标已经处于饱和状态下性能的表现。

(一定要把系统搞到奔溃,从而了解系统的承受极限)

  1. 稳定性测试

验证系统在连续运行情况下,查看系统的各项性能指标。

(看是否有 内存泄露)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lHpUX0wM-1682247290795)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681206648314.png)]

4. loadRunner 工具的介绍

性能指标对应的数据如何计算出来,就需要使用性能测试工具。

这里具体的安装可以看这篇博客,写的很详细

(259条消息) LoadRunner安装教程(和中文版安装)_阿英-fu的博客-CSDN博客

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OrqDKVL-1682247290796)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681210805730.png)]

安装好后,就有了这三个软件了。

  1. Virtual User Generator (VUG):主要用来生成性能测试脚本。
  2. Controller:创建和设计测试场景,运行测试脚本,监控场景运行,收集测试过程的数据。
  3. Analysis:分析性能测试结果,出测试报告和各种图表。

5. 使用 VUG

创建一个新的性能测试脚本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-atcXro58-1682247290797)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681211742850.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NL2COZWX-1682247290797)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681212166243.png)]

4.1 打开 LR 自带的 web 系统

  1. 启动 webTours 服务:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i1W6E9r6-1682247290798)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681271305809.png)]

  1. 启动成功后,别关闭命令框,在浏览器中访问 http://127.0.0.1:1080/WebTours/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aVokGt4Y-1682247290799)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681271446059.png)]

  1. 查看 WebTours 系统登录账号:

Web Tours 默认提供的账号在:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWt2HJU7-1682247290799)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681288948720.png)]

这个默认账号提供的密码是:bean

4.2 编写性能测试脚本

  1. 打开 WebTours 提供的函数工具库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AXjDZu91-1682247290799)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681289560929.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CwWLqopY-1682247290800)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681289766170.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2JVky9hO-1682247290800)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681370415290.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qPyOHn67-1682247290801)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681370688058.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRgHN1Mp-1682247290801)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681370892075.png)]

Action()
{
// 1. 访问 http://127.0.0.1:1080/WebTours/ 首页
// 2. 输入登录的账号和密码  
	web_url("index",
		"URL=http://127.0.0.1:1080/WebTours/",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		LAST);
	web_submit_form("login",
		ITEMDATA,
		"Name=username", "Value=jojo", ENDITEM,
		"Name=password", "Value=bean", ENDITEM,
		LAST);
	return 0;
}

运行脚本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMqvYWUw-1682247290802)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681371320877.png)]

这种是最简单的性能测试脚本的写法,但是这种写法不足以让我们进行性能测试数据的收集。必须是在并发情况下,也就是大量用户同时进行的操作。

6. 性能测试脚本的增强

6.1 事务(lr_start/end_transaction)

开启事务:lr_start_transaction
结束事务:lr_end_transaction

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTAus8LW-1682247290803)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681372233064.png)]

运行程序后

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYtIBJ7J-1682247290803)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681372587407.png)]

6.2 集合点(lr_rendzvous)

假如后续我们创建 10W 个虚拟用户去执行编写好的性能测试脚本,不能保证所有的虚拟用户都同时的去执行每一步操作,为了能够真正意义上的实现并发,让虚拟用户执行到集合点的地方短暂的集合,在满足条件后一起执行下一个步骤。

**[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Th7Kpich-1682247290804)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681375212787.png)]**

6.3 检查点(web_reg_find)

注意:检查点必须放在请求之前

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaQkxxfG-1682247290805)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681376240748.png)]

这个会提示在页面查找到 “jojo” 的文本,以及对应的查找次数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JDH8mjFn-1682247290806)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681376094676.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LLRPuvdO-1682247290807)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681376329389.png)]

6.4 参数化

给参数取个变量名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DEhkkpNP-1682247290807)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681376791691.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47Cz7Sfg-1682247290808)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681377768354.png)]

设置都传什么参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Hd7sHRM-1682247290808)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681377748362.png)]

6.5 日志设置

设置日志,最后按 ctrl+s 保存

Number or iterations :修改 action 脚本执行的次数,不会影响 init 和 end 脚本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8kgRKx8Y-1682247290809)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681378468216.png)]

7. 脚本录制

使用录制功能可以自动的生成性能测试脚本

注意必须使用 IE浏览器,如果使用别的浏览器(Edge),即使录制了也不会生成代码,action 文件内容始终为空的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k30KAsVC-1682247290809)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681379240576.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sCFKQe4w-1682247290810)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681379494777.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zj8INA1m-1682247290810)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681380495717.png)]

8. Controller 工具的使用

可以直接打开 Controller 软件,

也可以针对我们已经编写好的脚本来打开 controller 工具,创建测试场景。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6XRdmxE-1682247290810)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681380926416.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5vFGeYO-1682247290811)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681381034042.png)]

点击 OK 就会自动打开 Controller 软件

  1. 在脚本运行之前初始化虚拟用户的策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hBqZZzau-1682247290811)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681381765068.png)]

  1. 开始虚拟用户的运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ER9EZq1U-1682247290812)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681382065154.png)]

  1. 虚拟用户运行的时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJIeJ8B3-1682247290812)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681382211617.png)]

  1. 结束虚拟用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTqzmWjg-1682247290812)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681382881070.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWsMiwkL-1682247290813)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681383045210.png)]

运行场景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwPFIS7P-1682247290813)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681383670729.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csS6Ducw-1682247290813)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681385064490.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TFq1GJeR-1682247290814)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681385277529.png)]

如果想要查看在性能测试执行期间,系统资源消耗的情况,那么需要打开相关的系统设置,来允许 LR 获取对应的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ZU3DdDG-1682247290814)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681453400672.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SHmFs10h-1682247290815)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681454157319.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iyHoWcrk-1682247290815)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681455080810.png)]

9. Analysis 工具的使用

当运行完 Controller 工具后,会自动打开 Analysis 工具,生成性能测试报告并进行结果分析。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sk9WoDr9-1682247290815)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681455719509.png)]

  1. 性能测试报告

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NSAyeumJ-1682247290816)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681456108890.png)]

  1. 测试报表

(1)运行的虚拟用户图:Running vusers

根据显示的运行虚拟用户数量可以判断出在哪个时间段内给服务器的负载

(2)点击率图(每秒点击数):Hits per Second

通过点击率也可以判断出某段时间内服务器的负载

(3)吞吐量图:Throughput

吞吐量图形和点击率图形有点形似,但是吞吐量图曲线稍微之后一点,因为吞吐量表示的是响应返回响应的资源数量,肯定是先有请求再有返回。

如果请求变多但是吞吐量没啥变化,可能是因为

  • 服务器响应慢了,来不及响应。
  • 压力没有到服务器。
  • 服务器设计一定的阈值,超过多少个请求之后就不返回响应。

(4)事务图:Transaction Summary

(5)平均事务响应时间图:Average Trans…esponse Time

在这个图中分析出,虚拟用户在性能测试过程中,每秒在服务器上命中的次数,可以帮助根据命中次数评估虚拟用户生成的负载量。

如果想要查看更多的图表,右键添加即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bsn7mo4b-1682247290816)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681459378132.png)]

  1. precessor Time

    CPU 使用时间,被消耗的处理器时间数量

  2. Available MBytes

    可用的物理内存,一般根据这个指标推算消耗的物理内存有多大

    已经消耗的物理内存 = 实际内存 - 可用的物理内存。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VisQRxK3-1682247290817)(C:\Users\28463\AppData\Roaming\Typora\typora-user-images\1681460325352.png)]

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

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

相关文章

SpringCloudAlibaba服务注册与配置中心——Nacos

Nacos 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 简介 Nacos是阿里巴巴推出的服务注册和配置中心。等价于EurekaConfigBus,可以替代Eureka做服务注册中心,替代Config做服务配置中心。官方文档 安装 关于Nacos的安装…

HBase进阶——文件的合并、 MemStore Flush、StoreFile Compaction、 Region Split、高可用与预分区介绍

系列文章目录 centos7虚拟机下hbase的使用案例讲解 hbase进阶操作——读流程与写流程介绍 centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤 文章目录 系列文章目录 一、HBase的架构原理 1、StoreFile 2、MemStore 3、WAL 二、HBase的shell操作 2.1、创建表…

pytest使用 一(安装、简单的测试用例、运行)

Pytest框架 — 1.Pytest测试框架介绍 - 知乎 2023最新pytest接口自动化测试框架,三天带你精通pytest,带你写出最好的代码!(已更新2023新版)_哔哩哔哩_bilibili 一、pytest安装 pip3 install pytest # 查看pytest版本…

前端学习--Ajax(1) get/post

一、客户端和服务器 上网的目的:借助互联网获取和消费资源 1.1 服务器 负责存放和对外提供资源的计算机 1.2 客户端 负责获取和消费资源的计算机 二、URL地址 2.1 概念 Uniform Resource Locator 中文叫统一资源定位符,标识互联网上每一个资源的存…

(3)相关概念和索引的CURD

核心概念 https://www.elastic.co/guide/en/elasticsearch/reference/7.10/index.html 什么是搜索引擎? 全文搜索引擎 自然语言处理(NLP)、爬虫、网页处理、大数据处理。如谷歌、百度、搜狗、必应等等。 垂直搜索引擎 有明确搜索目的的…

脉诊在现代医学中的应用与局限性

目录 一、脉诊在疾病诊断中的作用及局限性 二、现代脉诊仪的可靠性 三、中医在现代医学中的地位 四、中西医结合的发展趋势 结论 一、脉诊在疾病诊断中的作用及局限性 脉诊作为中医诊断的重要方法之一,通过检测脉搏波的特征来了解患者的身体状况,进…

学习笔记:《Foundation models for generalist medical artificial intelligence》

目录 一、GMAI模型的概念与优势 二、GMAI模型面临的挑战 1.验证 2.社会偏见 3.隐私 4.规模 5.技术挑战 三、结论: 参考文献 最近在《Nature》杂志上发表的一篇名为《Foundation models for generalist medical artificial intelligence》的文章&#xff0c…

品牌如何借助江湖老大“音乐记忆”做宣传?

去年有个卖咖啡的小姐姐火了,“咖啡你冲不冲,冲冲冲冲冲”节奏分明、及其洗脑,引发众多网友模仿和音频采用。 其实这种借用音乐记忆扩大品牌知名度和传播范围的品宣手段十分常见,仔细回想一下,我们平时听到较为魔性的…

05-Node.js—http模块

目录 1、HTTP 协议1.1 概念1.2 请求报文的组成1.3 HTTP 的请求行1.4 HTTP 请求头1.5 HTTP 的请求体1.6 响应报文的组成 2、创建 HTTP 服务2.1 操作步骤2.2 测试2.3 注意事项 3、获取 HTTP 请求报文3.1 请求方法 request.method3.2 请求版本 request.httpVersion3.3 请求路径 re…

基本绘图函数

基本绘图函数 cv2.line()函数------用于绘制直线. 算子解释: cv2.line(img1, (20, 80), (120, 80), (0, 255, 255))cv2.line(img, pt1, pt2, color, thicknessNone, lineTypeNone, shiftNone) img:背景图。 pt1:直线起点坐标。 pt2&#x…

实战详解docker安装步骤——Linux操作系统(CentOS7.9)下安装容器技术docker引擎

一、安装docker依赖环境 yum install -y yum-utils device-mapper-persistent-data lvm2二、配置国内docker-ce的yum源 (这里采用的是阿里云镜像配置文件) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-c…

基于java Springboot+Vue+shiro前后端分离疫情防疫管理系统设计和实现2.0

基于java SpringbootVueshiro前后端分离疫情防疫管理系统设计和实现2.0 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获…

老板们搞怪营业,品牌好感度upup真有梗

老板下场营业最经典的莫过于“老乡鸡”了。在手撕联名信事件出圈后,老乡鸡围绕束从轩创始人IP,开展了一系列社交传播宣传,比如“咯咯哒糊弄学”等。 50多岁的老乡鸡董事长束从轩,一改传统企业家严肃正经的形象,跟着老乡…

Pytorch深度学习笔记(九)加载数据集

目录 1.名词解释 2. 数据集加载器Dataloader 3.完整代码 推荐课程:08.加载数据集_哔哩哔哩_bilibili 1.名词解释 名词解释:Epoch,Batch,Batch-Size,Iterations Epoch(周期):指所…

职工管理系统(C++)

职工管理系统有以下8个功能: - 增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号 - 显示职工信息:显示公司内部所有职工的信息 - 删除离职职工:按照…

java防止重复提交的方法

为了防止重复提交,可以采用以下几种方法: 1. 令牌机制(Token) 在表单中添加一个隐藏字段,用于存放一个随机生成的令牌(Token)。当用户提交表单时,将令牌一起提交到服务器。服务器接收…

Win10系统重装过程(一键装机)

相信不少小伙伴都有刷机重装系统的过程,那种镜像,up盘,压缩包等多个复杂过程也折磨的大伙不堪重负,因此本期带来简易版一键装机相应操作。 下载地址: 小心点击下方链接,点击即下载(3.66GB&…

SAM:图像分割的里程碑

Facebook的新模型称为SAM或Segment Anything Model,具有在计算机视觉行业中引起积极变革的潜力。这个突破性模型不同于以前使用的任何其他图像分割模型。 传统上,会为不同类型的图像,如人或汽车,分别训练不同的模型,但…

成功上岸国防科大!

Datawhale干货 作者:王洲烽,太原理工大学,Datawhale成员 写在前面 相比较于一般的经验贴,我更想在这里讲述一下自己的故事。我一开始报考的是北理工,但很遗憾9月份北理改考408了,无缘京爷,所以…

路径规划 | 图解概率路图PRM原理及其参数分析

目录 0 专栏介绍1 基于采样的规划算法2 概率路图基本原理3 PRM算法流程4 PRM参数分析4.1 采样点数4.2 阈值 d max ⁡ \mathrm{d}_{\max} dmax​ 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划…