jmeter 接口性能测试 学习笔记
目录
- 说明
- 工具准备
- 工具配置
- jmeter 界面汉化配置
- 汉化步骤
- 汉化结果图
- 案例1:测试接口
- 接口准备
- 线程组
- 添加线程组
- 配置线程组值
- 线程数(Number of Threads)
- Ramp-Up 时间(Ramp-Up Period)
- 循环次数(Loop Count)
- 永远循环(Forever)
- 延迟(Delay)
- http请求
- 添加http请求
- 配置HTTP请求值
- 协议 (Protocol)
- 服务器名称或 IP(Server Name or IP)
- 端口号(Port)
- 请求
- 路径(Path)
- 察看结果树
- 添加察看结果树
- 察看结果树内容
- 聚合报告
- 添加聚合报告
- 聚合报告说明
- 文件名
- Label
- 样本 Samples
- 平均值 Average
- 中位数 Median
- 90%百分位 90% Line
- 最小值 Min
- 最大值 Max
- 异常 Error %
- 吞吐量 Throughput
- 传输数据量 KB per Second
- 建立连接时间 Connect Time
- 响应时间 Response Time
- 平均吞吐量 Avg. Throughput
- 总计 Total
- 请求计数 Request Counts and Percentages
- 案例2:导出报告
- 导出html 报告
- 案例3: 计算理论的并发用户数
- 前提
- 结果分析
- 关键指标分析
- 并发用户数估算公式
- 案例4: 携带cookie请求
- 说明
- 接口准备
- 配置测试计划
- 线程组
- http请求
- 添加结果监听器
- 添加步骤
- 添加指定的监听器
- 执行登录http请求
- 添加正则表达式提取器
- 说明
- 介绍
- 添加步骤
- 正则表达式提取器配置说明
- 添加HTTP Cookie管理器
- 添加HTTP Cookie管理器步骤
- 配置HTTP Cookie管理器
- 添加调试取样器
- 添加步骤
- 运行线程组
- 登录结果
- list数据查询结果
- 调试取样器结果
说明
工具准备
- apache-jmeter-5.4.1
- jdk8 +
工具配置
jmeter 界面汉化配置
汉化步骤
jmeter 界面默认是英文,配置成中文。
- 打开 /bin/jmeter.porperties 文件,
- 将 默认的 language=en 改为 language=zh_CN 后,重启jmeter。
汉化结果图

案例1:测试接口
接口准备
spring mvc 项目创建一个接口,来模拟测试的目标接口。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Objects;@RestController
@RequestMapping(value = "test")
public class TestController {@GetMapping(value = "test")public Object test() {return new HashMap<String,Object>() {{put("message", "成功");}};}
}
线程组
添加线程组

配置线程组值

线程数(Number of Threads)
- 定义
这个值指定了要创建的虚拟用户(线程)的数量。每个线程都代表一个独立的用户,因此线程数越多,模拟的并发用户数也就越多。 - 使用场景
如果你想模拟 1000 个并发用户,就设置线程数为 1000。
Ramp-Up 时间(Ramp-Up Period)
- 定义
Ramp-Up 时间是指所有线程(虚拟用户)启动所需的时间,单位是秒。
例如,如果设置了 100 个线程,Ramp-Up 时间为 100 秒,那么每秒会启动一个线程,直到所有线程都被启动。Ramp-Up 时间设置得较长可以避免瞬间发起大量请求,从而导致服务器负载过高。 - 使用场景
如果你希望所有用户在 100 秒内启动,那么 Ramp-Up 时间应设置为 100 秒。
通过这种方式,你可以模拟逐步增加负载的场景。
循环次数(Loop Count)
- 定义
循环次数指定每个线程将执行的次数。如果设置为 1,则每个线程只执行一次。如果设置为 -1,则表示无限循环,直到测试结束时停止。 - 使用场景
如果你希望每个用户执行 10 次请求,可以将 Loop Count 设置为 10;如果希望每个用户一直执行,直到测试结束,则设置为 -1。
永远循环(Forever)
- 定义
这是一个复选框,当勾选时,线程将会不停地循环执行测试计划中的请求,直到测试手动停止。 - 使用场景
如果你正在进行压力测试,并且希望线程永远执行直到你手动停止,可以勾选此选项。
延迟(Delay)
- 定义
该选项可以为每个线程设置一个固定的启动延迟时间。这意味着每个线程启动时,会等待指定的时间,然后再开始执行请求。 - 使用场景
这种配置适合于模拟用户之间有间隔的启动情况。
http请求
添加http请求

配置HTTP请求值
协议 (Protocol)
- 定义
指定协议类型,可以选择 http 或 https。 - 使用场景
如果你测试的是 HTTPS 服务,选择 https
服务器名称或 IP(Server Name or IP)
- 定义
指定请求目标服务器的地址,可以是域名(如 www.example.com)或 IP 地址(如 192.168.1.1)。 - 使用场景
如果目标服务器是 www.example.com,就填写 www.example.com。如果是通过 IP 地址访问,则填写 IP。
端口号(Port)
- 定义
指定服务器的端口号,默认情况下 HTTP 使用端口 80,HTTPS 使用端口 443。如果服务器使用其他端口,可以在此处指定。 - 使用场景
如果你的服务器监听在 8080 端口,则需要设置 8080。
请求
- 定义
选择 HTTP 请求方法,常见的方法包括:
GET:获取资源。
POST:提交数据。
PUT:更新数据。
DELETE:删除资源。
HEAD:请求资源的头信息。
OPTIONS:请求可用的方法。
PATCH:部分更新资源。 - 使用场景
根据目标 API 或 Web 页面请求类型选择合适的 HTTP 方法。
路径(Path)
- 定义
指定访问的具体路径或资源。例如,/login、/api/getData 等。 - 使用场景
请求的具体接口路径,如 https://www.example.com/api/getData 中,/api/getData 为路径。

察看结果树
添加察看结果树

察看结果树内容

聚合报告
添加聚合报告

聚合报告说明

文件名
报告数据输出的文件。必须要先创建此文件,才能指定。报告结果写入此文件。用于导出报告。具体查看本文的导出html报告部分
Label
- 定义
测试请求的名称。通常是测试中每个 HTTP 请求的名称。 - 使用场景
每个请求(或事务)的标识符,可以通过它来查看特定请求的性能表现。
样本 Samples
- 定义
样本数量,表示此请求在整个测试过程中被执行的次数。 - 使用场景
查看某个请求执行的次数。例如,HTTP 请求可能执行了 100 次。
平均值 Average
- 定义
所有请求响应时间的平均值,单位是毫秒(ms)。 - 使用场景
表示请求的平均响应时间。较高的平均响应时间可能表示服务器存在性能瓶颈。
中位数 Median
- 定义
响应时间的中位数,单位是毫秒(ms)。 - 使用场景
中位数是将所有响应时间按升序排列后处于中间位置的值。中位数可以更好地反映出“典型”响应时间,避免了极端值的影响。
90%百分位 90% Line
- 定义
响应时间的第 90 百分位数,表示 90% 的请求响应时间低于该值。 - 使用场景
此值可以帮助分析大多数请求的响应时间,特别是对用户体验影响较大的长时间响应请求。
最小值 Min
- 定义
响应时间的最小值,单位是毫秒(ms)。 - 使用场景
表示最短的响应时间。可以帮助判断在测试过程中是否有异常的快速响应。
最大值 Max
- 定义
响应时间的最大值,单位是毫秒(ms)。 - 使用场景
表示最长的响应时间。非常高的最大响应时间可能表示系统在某些时刻出现了严重的性能瓶颈。
异常 Error %
- 定义
错误率,表示在所有请求中,失败请求所占的百分比。 - 使用场景
错误率高通常意味着系统存在故障或性能瓶颈,可能需要检查相关的错误日志来进一步定位问题。
吞吐量 Throughput
- 定义
吞吐量,表示每秒请求的数量(requests per second, RPS)。 - 使用场景
吞吐量是衡量系统在单位时间内处理请求的能力,较高的吞吐量通常意味着系统能够处理更多的用户请求。
传输数据量 KB per Second
- 定义
每秒传输的数据量,单位是千字节(KB/s)。 - 使用场景
表示在每秒钟内系统传输的数据量。较高的值通常表示系统处理大数据量的能力较强。
建立连接时间 Connect Time
- 定义
建立连接的时间,单位是毫秒(ms)。通常用于 HTTP 请求的连接阶段。 - 使用场景
较高的连接时间可能意味着网络延迟或服务器响应慢,特别是在多用户场景下,连接时间的优化尤为重要。
响应时间 Response Time
- 定义
响应时间,单位是毫秒(ms)。 - 使用场景
响应时间是指从发送请求到收到完整响应的时间,它是评估系统性能最直接的指标之一。通常越低越好。
平均吞吐量 Avg. Throughput
- 定义
平均吞吐量,表示所有请求的吞吐量的平均值。 - 使用场景
平均吞吐量可以帮助判断系统的处理能力。如果某一时刻吞吐量明显下降,可能存在性能瓶颈。
总计 Total
- 定义
总计行,表示所有请求的合计数。 - 使用场景
提供该测试计划所有请求的总的统计数据。
请求计数 Request Counts and Percentages
- 定义
聚合报告还会显示每个请求成功和失败的计数,以及它们在所有请求中的比例。 - 使用场景
可以帮助我们快速评估在负载测试中出现的错误情况和系统的稳定性。
案例2:导出报告
导出html 报告
- 在空文件夹中创建一个 report.txt 的文件。
- 在聚合报告的文件名中填写该文件的全路径。

- 执行测试。测试执行完成后, report.txt 文件中会有测试结果数据。

- 将report.txt 文件的后缀名称更换成csv, 即 report.csv
- 创建一个空的文件夹,存放生成的html。
- 打开导出配置界面

- 配置导出,点击 Generate report 按钮开始导出。
Results file: 选择步骤4中的report.csv文件
user.properties: 选择Jmeter 安装目录 bin 下的user.properties 文件。如下图
Output directory:选择步骤5中创建的空文件夹

- 查看导出结果
导出结束之后,在步骤5的文件夹中会生成报告html。用浏览器打开index.html 即可查看。如下图:

案例3: 计算理论的并发用户数
前提
按照案例1 步骤配置完成后,能正常执行完成得到聚合报告。
将报告导出html后,在html报告中可以查看到以下统计报告表。
例如统计报告表如下:

结果分析
注意:最大并发数需要结合其他信息如测试工具的配置、服务器资源利用率等来确定。以下分析只是基于html导出的统计报告表中的值推断的理论结果。
关键指标分析
- Samples (请求数): 100
- Error % (错误率): 0.00%
- Average (平均响应时间): 198.56 ms
- Min (最小响应时间): 98 ms
- Max (最大响应时间): 269 ms
- Transactions/s (每秒事务数): 362.32
并发用户数估算公式
并发用户数 = 平均响应时间(单位:毫秒) * 每秒事务数 (单位:次/秒)
上例的统计结果表中的理论并发用户估算值为: (198.56 * 1000) * 362.32 = 0.19856 * 362.32 约等于 72
案例4: 携带cookie请求
说明
在进行接口测试的时候需要先进行登录,对于传统的登录,登录成功后,后端使用session存储登录信息并将cookie信息返回给前端,前端请求接口的时候需要携带上cookie进行请求。为此,需要获取到登录成功返回的cookie信息存储在请求头中进行测试。
接口准备
package www.zhang.tomcat.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Objects;@RestController
@RequestMapping(value = "test")
public class TestController {/*** 模拟的登录接口*/@GetMapping(value = "login")public Object login(HttpServletRequest request) {// 登录成功后设计session 设置sessionrequest.getSession().setAttribute("user", "admin");return new HashMap<String,Object>() {{put("message", "成功");}};}/*** 模拟的查询接口*/@GetMapping(value = "list")public Object list(HttpServletRequest request) {// 获取sessionObject user = request.getSession().getAttribute("user");// 没有获取到对应登录信息if(Objects.isNull(user)){return new HashMap<String,Object>() {{put("message", "fail not user");}};}return new HashMap<String,Object>() {{put("message", "成功"+user.toString());}};}
}
配置测试计划
线程组
按照案例1 添加线程组的步骤添加线程组,此处省略
http请求
按照案例1 添加http请求的步骤添加线程组,添加2个http请求。
登录请求login :

查询请求 list:

添加结果监听器
添加步骤

添加指定的监听器
此处主要是为了查看、学习不同监听器的结果而已。按照下图添加以下结果监听器。

执行登录http请求
按实际填写完成http登录请求相关的配置后,启动1次登录测试,并保证此次登录测试要成功。
在察看结果树监听器中可以看到请求记录。点击请求记录,查看响应内容,即可看到登录成功后返回的cookie的信息。如下图

添加正则表达式提取器
说明
由于登录成功后会在响应头中返回cookie的信息,此时可以用提取器获取到响应头中的cookie的信息。
介绍
正则表达式提取器用于从服务器返回的响应数据中提取特定的信息。你可以使用它来提取匹配正则表达式的内容,并将提取到的数据保存为 JMeter 变量,供后续的请求使用。
添加步骤

正则表达式提取器配置说明

-
要检查的信息头
此处要在响应头中获取数据,选择信息头。 -
引用名称
自定义变量名称,获取到的值会赋值给这个变量。其他地前方使用此变量格式:${变量名称} -
正则表达式
根据填写的正则表达式规则来匹配到对应的值。
(.*) 通配符,表示所有。
例如:
根据登录成功后返回的响应头可得cookie中携带的sessionId的格式如下:
HTTP/1.1 200
Set-Cookie: JSESSIONID=DFB85D3D2C35B36792B052E881400A4B; Path=/; HttpOnly
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 20 Dec 2024 09:12:14 GMT
# JSESSIONID=sessionId;
JSESSIONID=(.*); Path=/
从cookie中获取到sessionId 后,只要携带此数据请求接口,后端会自动根据此sessionId 找到登录信息。
-
模板
模板用于指定在响应中提取内容的位置。通常,在正则表达式中使用捕获组,模板就是指定使用哪个捕获组的内容.
例如,此处只需要获取第一个捕获到的值。
模板格式:$序号$
例如:匹配第1个$1$;匹配第2个$2$ -
匹配数字
用于指定你想要提取第几个匹配项:
0 表示提取所有匹配项。
1 表示提取第一个匹配项(默认值)。
…
-1 表示提取最后一个匹配项。
添加HTTP Cookie管理器
在数据查询接口 list中 添加HTTP Cookie管理器,用于把在登录接口中通过正则表达式提取到的登录sessionid数据获取,放到请求头中。
添加HTTP Cookie管理器步骤

配置HTTP Cookie管理器
根据响应头中的格式数据进行填写

添加调试取样器
调试取样器来获取变量值,用于查看正则表达式的变量是否能提取到值。
添加步骤

运行线程组
运行线程组查看结果
登录结果

list数据查询结果
请求头

响应结果

调试取样器结果

相关文章:
jmeter 接口性能测试 学习笔记
目录 说明工具准备工具配置jmeter 界面汉化配置汉化步骤汉化结果图 案例1:测试接口接口准备线程组添加线程组配置线程组值线程数(Number of Threads)Ramp-Up 时间(Ramp-Up Period)循环次数(Loop Count&…...
`HashMap`、`Hashtable` 和 `HashSet`的区别
HashMap、Hashtable 和 HashSet 都是 Java 中常用的集合类,它们的功能和实现有所不同,尽管它们都使用哈希表(hash table)作为底层数据结构。以下是它们之间的主要区别: 1. HashMap 和 Hashtable 的区别 特性HashMapH…...
Arduino中解析JSON数据
JSON JSON(JavaScript Object Notation,即JavaScript对象表示法)是一种广泛采用的开放标准文件格式与数据交换格式。它兼具人类可读性和机器易解析性,使得数据的编写、阅读、生成及解析都变得十分便捷。JSON的设计不依赖于特定编…...
linux----文件访问(c语言)
linux文件访问相关函数 打开文件函数 - open 函数原型:int open(const char *pathname, int flags, mode_t mode);参数说明: pathname:这是要打开的文件的路径名,可以是绝对路径或者相对路径。例如,"/home/user/…...
源码分析之Openlayers中MousePosition鼠标位置控件
概述 本文主要介绍 Openlayers 中的MousePosition鼠标位置控件,该控件会创建一个元素在页面的右上方用来实时显示鼠标光标的位置坐标。该控件在实际应用很有效,可以实时获取鼠标位置,但是一般控件元素都会自定义。 源码分析 MousePosition…...
以ATTCK为例构建网络安全知识图
ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用于评估攻防能力覆盖、APT情报分析、威胁狩猎及攻击模拟等领域。本文简单介绍ATT&CK相关的背景概念,并探讨通过ATT&a…...
myexcel的使用
参考: (1)api文档:https://www.bookstack.cn/read/MyExcel-2.x/624d8ce73162300b.md (2)源代码: https://github.com/liaochong/myexcel/issues 我: (1)m…...
Unity 上好用的插件
PlayerMaker BehaviorDesigner Cinemachine Timeline Hybrid Addressable AssetBundle Blower Simple Zoom 大地图上缩放和平移使用ScrollRect的好效果实现...
Vivado - 远程调试 + 远程综合实现 + vmWare网络配置 + NFS 文件共享 + 使用 VIO 核
目录 1. 简介 2. VIO 配置 2.1 VIO IP 2.2 VIO 对比 ILA 3. VIO 示例 3.1 Led 3.1.1 工程配置 3.1.2 效果展示 3.2 Key 3.2.1 工程配置 3.2.1 效果展示 3.3 门控触发 3.3.1 工程配置 3.3.2 效果展示 4. 远程调试 4.1 配置目标主机 4.2 配置本机 4.3 vmWare 网…...
双臂机器人
目录 一、双臂机器人简介 二、双臂机器人系统的组成 三、双臂机器人面临的主要挑战 3.1 协调与协同控制问题 3.2 力控制与柔顺性问题 3.3 路径规划与轨迹优化问题 3.4 感知与环境交互 3.5 人机协作问题 3.6 能源与效率问题 3.7 稳定性与可靠性问题 四、双臂机器人…...
【Lua热更新】上篇
Lua 热更新 - 上篇 下篇链接:【Lua热更新】下篇 文章目录 Lua 热更新 - 上篇一、AssetBundle1.理论2. AB包资源加载 二、Lua 语法1. 简单数据类型2.字符串操作3.运算符4.条件分支语句5.循环语句6.函数7. table数组8.迭代器遍历9.复杂数据类型 - 表9.1字典9.2类9.3…...
Ubuntu批量修改文件名
文章目录 批量重命名文件:Ubuntu下使用find命令结合sed和mv参考 批量重命名文件:Ubuntu下使用find命令结合sed和mv 在日常开发和文件管理中,有时我们需要批量重命名一批文件,比如将文件名中的某个特定字符串替换为另一个字符串。…...
食家巷大烤馍:岁月沉淀下的麦香传奇
在繁华都市的街角巷尾,隐藏着许多不为人知的美食宝藏,食家巷大烤馍便是其中之一。它宛如一位低调的美食大师,默默散发着独特的魅力,用最质朴的味道,征服着每一个过往食客的味蕾。 初见食家巷大烤馍,你会被…...
harmony UI组件学习(1)
Image 图片组件 string格式,通常用来加载网络图片,需要申请网络访问权限:ohos.permission.INTERNET Image(https://xxx.png) PixelMap格式,可以加载像素图,常用在图片编辑中 Image(pixelMapobject) Resource格式,加…...
BTP Integration Suite CPI Apache Camel
官网文档: https://help.sap.com/docs/integration-suite/sap-integration-suite/what-is-sap-integration-suite CPI 云集成(CPI)有以下几个特性: SAP Cloud Integration通过消息交换支持端到端流程集成。 它基于Apache软件基金会的开源框架Camel。 …...
vitepress-打包SyntaxError: Element is missing end tag.
一、vitepress打包编译报错Element is missing end tag. 背景: 新增了一些笔记准备上传到git仓库,持续集成部署的时候,控制台报错了,错误信息如下: SyntaxError: Element is missing end tag. 仔细看了下控制台几乎没啥…...
【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类
文章目录 一、this扩展方法1、扩展方法的基本语法2、使用扩展方法3、扩展方法的注意事项5、扩展方法的限制6、总结 二、运算符重载1、C# 运算符重载2、运算符重载的基本语法3. 示例:重载加法运算符 ()4、使用重载的运算符5、支持重载的运算符6、不能重载的运算符7、…...
Java进程占用的内存有哪些部分?
大家好,我是锋哥。今天分享关于【Java进程占用的内存有哪些部分?】面试题。希望对大家有帮助; Java进程占用的内存有哪些部分? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java进程在运行时,会将内存划分为多个区域…...
【华为OD机试真题】【2024年E卷】数值同化-队列BFS(C++/Java/Python)
文章目录 分值:200题目描述思路复杂度分析AC 代码 分值:200 题目描述 存在一个 m * n 的 二维数组只,其成员取值范围为0, 1, 2。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。而值为2的元素…...
“魔法糖果盒的秘密:用朴素贝叶斯算法猜糖果颜色”
想象一下,你有一个神奇的糖果盒,这个糖果盒里有两种糖果:红色的和蓝色的。你闭上眼睛,从盒子里拿出一个糖果,然后尝一尝,你想知道这个糖果是红色的还是蓝色的。朴素贝叶斯算法就像是一个魔法规则࿰…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用
Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用 Linux 内核内存管理是构成整个内核性能和系统稳定性的基础,但这一子系统结构复杂,常常有设置失败、性能展示不良、OOM 杀进程等问题。要分析这些问题,需要一套工具化、…...
02-性能方案设计
需求分析与测试设计 根据具体的性能测试需求,确定测试类型,以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通,初步确定压测方案及具体的性能指标QA完成性能测试设计后,需产出测试方案文档发送邮件到项目组&…...
