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

Postman实现接口测试(附项目实战)

Postman实现接口测试(附项目实战)

Postman实现接口测试
掌握如何安装Postman
掌握Postman的基本用法
掌握全局变量与环境变量
掌握Postman断言和关联
掌握如何读取外部文件实现参数化
掌握如何使用Newman生成HTML测试报告
1.Postman介绍和安装
Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会 经常使用。

官方网站:https://www.getpostman.com/

主要特点

简单易用的图形用户界面
可以保存接口请求的历史记录
使用测试集Collections可以更有效的管理组织接口
可以在团队之间同步接口数据
2. Postman安装
2.1 安装方式
方式一: Postman最早是以Chrome浏览器插件的形式存在的,可以到chrome商店搜索下载安装。由于2018年初Chrome停止对Chrome应用程序的支持,所以不再推荐使用该方式。
方式二:Postman提供了独立的安装包,不再依赖于Chrome浏览器了。同时支持MAC、Windows和Linux,推荐使用这 种方式安装。
下载地址:https://www.getpostman.com/apps

  1. Postman入门示例
    需求

使用Postman访问百度 http://www.baidu.com ,并查看响应结果

实现步骤

设置请求方式
输入接口地址
点击发送请求
查看响应结果
示例截图
在这里插入图片描述

Postman基本用法
掌握使用Postman发送URL参数
掌握使用Postman发送表单数据
掌握使用Postman发送JSON数据
1.案例一

1.1 需求

访问TPshop搜索商品的接口,通过查询字符串的方式传递搜索的关键字 iPhone ,并查看响应数据
请求路径格式为: http://localhost/Home/Goods/search.html?q=iPhone
1.2 实现分析

请求方式:GET
请求路径: http://localhost/Home/Goods/search.html
传参方式:查询字符串(q=iPhone)
1.3 实现步骤

设置请求方式为GET
输入请求路径
设置请求数据(查询字符串)
点击发送请求
查看响应数据
1.4 示例截图
在这里插入图片描述

2.案例二

2.1 需求

请求TPshop项目的登录接口,请求数据(username: 13088888888, password: 123456, verify_code: 1234)
登录接口URL:http://localhost/index.php?m=Home&c=User&a=do_login
2.2 实现分析

请求方式:POST
请求路径: http://localhost/index.php?m=Home&c=User&a=do_login 请求数据:请求体-表单提交(username: 13088888888, password: 123456, verify_code: 1234)
2.3 实现步骤

设置请求方式为POST
输入请求路径
设置请求数据(请求体-表单提交)
点击发送请求
查看响应数据
2.4 示例截图
在这里插入图片描述

3.案例三
3.1 需求
请求IHRM项目的登录接口,请求数据( {“mobile”:“13800000002”, “password”:“123456”} )
登录接口URL:http://182.92.81.159/api/sys/login
3.2 实现分析

请求方式:POST
请求路径: http://182.92.81.159/api/sys/login
请求数据:
请求头-(Content-Type: application/json)
请求体-JSON数据( {“mobile”:“13800000002”, “password”:“123456”} )
3.3 实现步骤

设置请求方式为POST
输入请求路径
设置请求头
设置请求体(请求体-raw)
点击发送请求
查看响应数据
3.4 示例截图

设置请求头:
在这里插入图片描述

在这里插入图片描述

Postman高级用法
掌握如何创建用例的目录结构
掌握Postman断言
掌握全局变量与环境变量
掌握Postman关联
掌握如何读取外部文件实现参数化

  1. 管理用例
    思考:针对一个大型的项目进行接口测试,会编写很多测试用例。怎么更好的管理维护测试用例呢?

1.1 实现步骤

创建测试集-New Collection
Collection可以理解成一个项目(系统),包含多个接口请求
创建目录-Add Folder
Folder可以理解成一个项目模块
添加请求-Add
Request
1.2 实现步骤截图

1)创建测试集- 点击‘New Collection’,在弹出框中输入测试集的名称和其他信息,再点击‘Create’按钮
在这里插入图片描述
2)创建目录- 在测试集上点击右键选择‘Add Folder’,在弹出框中输入目录的名称和其他信息,再点击‘Create’按钮
在这里插入图片描述

3.)添加请求- 在目录上点击右键选择‘Add Request’,在弹出框中输入请求的名称和其他信息,再点击保存按钮
在这里插入图片描述
2. Postman断言
断言:让程序判断预期结果和实际结果是否一致。

2.1 特点

Postman的断言是使用JavaScript语言编写的,写在‘Tests’标签页里
Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在‘Test Results’标签页中展示
2.2 常用Postman断言

选择断言代码片段

在Tests输入框的右侧配置了一些常用的断言代码片段,点击后自动填写到Tests输入框中,然后再进行修改
在这里插入图片描述
断言代码片段介绍
1.Status code: Code is 200

// 判断响应状态码是否等于200
pm.test("Status code is 200", function () {pm.response.to.have.status(200); });

2.Response body: Contains string

// 判断响应体中是否包含指定的字符串 pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });

3.Response body: Is equal to a string

// 判断响应体数据是否等于指定的字符串 pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string"); });

4.Response body: JSON value check

// 校验响应的JSON数据
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100); });

5.Response headers: Content-Type header check

// 判断响应头中是否包含指定的头标签 pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type"); });

测试结果
在这里插入图片描述

  1. 全局变量与环境变量
    3.1 概念

全局变量:全局变量是全局唯一的,不可重复定义的变量
环境变量:
一个变量只能属于某个环境,在某一个环境中变量不可重复定义
在环境与环境之间可以定义重复的变量
一个环境可以包含多个环境变量
常见环境分类:开发环境、测试环境、生产环境
3.2 设置变量

全局变量

手动设置
代码设置: pm.globals.set(“var_name”, value);
环境变量

手动设置
代码设置: pm.environment.set(“var_name”, value);
3.3 获取变量值

全局变量

请求参数中获取:{{var_name}}
代码中获取: var value = pm.globals.get(“var_name”);
环境变量

请求参数中获取:{{var_name}}
代码中获取: var value = pm.environment.get(“var_name”);
4.请求前置脚本

请求前置脚本就是在“Pre-request Script”标签中所编写的脚本,是在请求发送之前要执行的代码片段。 应用场景:

请求参数中包含一个随机数或者时间戳
请求之前需要对请求参数做进一步处理(如:对敏感参数进行加密)
案例

需求:请求TPshop项目中获取图片验证码的接口,需要在URL中设置随机数 请求路径:
分析:在JS中如何生成随机数?
实现截图
在这里插入图片描述

  1. Postman关联
    当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。

5.1 如何实现?

要获取某个请求的响应结果数据,可以通过在‘Tests’标签页中编写JavaScript脚本来实现

// 获取JSON格式的响应数据
var jsonData = pm.response.json();

多个请求之间可以使用全局变量或环境变量来传递数据

// 把数据保存到全局变量中 pm.globals.set("city", city);

获取某个全局变量的值:{{var_name}}
5.2 案例

请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html
获取返回结果中的城市名称
调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数

实现步骤截图

在第一个请求的‘Tests’标签页中编写JavaScript脚本
在这里插入图片描述

在第二个请求中使用全局变量
在这里插入图片描述

  1. 批量执行测试用例
    要想批量执行测试用例,需要先把接口请求添加到测试集中,通过运行测试集的方式就可以实现批量运行测试用例。

操作步骤

点击测试集中的“Run”按钮,批量运行测试用例
在这里插入图片描述

弹出Collection Runner窗口,点击运行按钮
在这里插入图片描述

查看测试结果
在这里插入图片描述

  1. 读取外部文件实现参数化
    应用场景: 针对于某个接口,如果有大量的测试数据需要批量验证,可以把测试数据保存到数据文件中,通过参数化的方式来实现。
    7.1 定义数据文件

常用的数据文件格式有:CSV、JSON
在这里插入图片描述

7.2 选择数据文件
在测试集运行“Collection Runner”窗口中,点击“Select File”按钮选择定义好的数据文件
在这里插入图片描述

7.3 获取数据文件中的参数

在不同的地方获取参数的方法是不同的,介绍两种获取参数的方法:

请求参数可以通过{{var_name}}来引用
断言中的数据,由于是在Tests中编写脚本,并不能直接通过{{var_name}}来引用,可以通过内置变量 data 来 获取

// 获取数据文件中的用户名参数 
var username = data.username;

7.4 案例

需求:批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确
接口地址: http://cx.shouji.360.cn/phonearea.php?number=13012345678
部分测试数据:
手机号: 13012345678 运营商: 联通
手机号: 13800001111 运营商: 移动
手机号: 18966778899 运营商: 电信
定义数据文件

CSV格式
phone,sp
13012345678,联通
13800001111,移动
18966778899,电信
JSON格式

[
{"phone":"13041092162", "sp":"联通"}, {"phone":"13820003536", "sp":"移动"}, {"phone":"18911236688", "sp":"电信"}
]

实现步骤截图
在这里插入图片描述

Postman测试报告目标
掌握如何搭建Newman的相关环境
掌握如何使用Newman生成HTML测试报告
1.Newman

Newman是一款基于nodejs开发的可以运行Postman脚本的工具,并可以生成测试报告

2.环境准备

2.1 安装nodejs

下载地址:http://nodejs.cn/download/
如果下载的是安装包,下载后双击安装即可
如果下载的是压缩包(.zip),解压到某个目录后,需要配置环境变量
校验:打开cmd,输入 node -v ,看到输出node的版本信息,即代表安装成功
2.2 安装newman

1)安装newman
打开cmd输入:
校验:安装完成后,输入 命令查看版本信息,检测是否安装成功
2)安装newman-reporter-html
打开cmd输入: npm install -g newman-reporter-html
3.导出测试集数据
在这里插入图片描述

4.执行测试

使用newman命令,运行导出的测试集脚本,打开cmd输入:

newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html
eg:
newman run demo.postman_collection.json -r html
newman run demo.postman_collection.json -r html --reporter-html-export report.html

命令说明

run xxx.json:表示要执行的postman脚本,即导出的测试集数据
-e source:用来指定环境变量文件的路径
-d source:用来指定测试数据文件的路径
-r html:用来指定生成的数据结果的类型,如json、html等
–reporter-html-export source:指定html报告生成的路径;如果不设置该参数,则会在当前目录下生成一个名 字为newman的文件夹
查看测试报告

命令运行完成后,打开生成的HTML文件即可看到测试报告内容
在这里插入图片描述

项目实战

  1. 初始化工作
    1.1 创建测试用例结构

1)创建测试集:IHRM人力资源管理系统

2) 创建目录

登录模块
员工管理模块
在这里插入图片描述

1.2 设置环境变量

在实际的工作中,我们既要对测试环境进行测试,也要对生产环境进行测试。

测试环境
base_url=http://182.92.81.159
token=xxx

生产环境
base_url=http://www.myhrm.com
token=xxx
在这里插入图片描述
2. 实现测试用例
根据编写的测试用例文档,使用Postman实现测试用例

2.1 登录-登录成功

操作步骤

在‘登录’目录下,添加‘登录成功’的请求
填写请求数据:请求方式、请求URL、请求头、请求体
在‘Tests’标签页中,编写测试脚本:断言、业务数据处理
发送请求,调试脚本
实现
1.添加‘登录成功’的请求
在这里插入图片描述

  1. 填写请求数据:请求方式、请求URL
    在这里插入图片描述

3.填写请求数据:请求头
在这里插入图片描述
4.编写测试脚本
在这里插入图片描述

5.响应体数据
在这里插入图片描述

6.断言结果
在这里插入图片描述

  1. 生成测试报告
    newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html

操作步骤

导出测试集数据
导出环境变量数据
执行命令: newman run ihrm.postman_collection.json -e dev.postman_environment.json -r html --reporter-html-export report.html

相关文章:

Postman实现接口测试(附项目实战)

Postman实现接口测试(附项目实战) Postman实现接口测试 掌握如何安装Postman 掌握Postman的基本用法 掌握全局变量与环境变量 掌握Postman断言和关联 掌握如何读取外部文件实现参数化 掌握如何使用Newman生成HTML测试报告 1.Postman介绍和安装 Postman是…...

从零上手GUI Guider学习LVGL——Button

视频教程请关注我b站:同学_好好学习,这里只是做相应的笔记文稿 从零上手GUI Guider学习LVGL——Buttton 前言: 首先我们为什么要学习LVGL设计工具呢? 1 降低开发难度 2 提高开发效率 所以我们需要学习一款合适的设计工具 在b站很少…...

软件工程知识体系全面梳理

一、软件工程概述 1. 软件工程基本概念 定义:应用系统化、规范化、可量化的方法开发、运行和维护软件的学科 目标:提高软件质量、降低开发成本、控制开发周期 三要素:方法、工具、过程 2. 软件生命周期 可行性分析 → 需求分析 → 设计 …...

操作教程|通过DataEase制作MaxKB系统数据大屏

MaxKB(Max Knowledge Brain)是一款强大易用的企业级AI助手,支持RAG检索增强生成、工作流编排、MCP工具调用能力,目前正在被广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。MaxKB可以帮助用户快速搭建面向不同应用场景…...

关于webpack的知识点

一、什么是webpack?它的核心概念是什么? webpack是现代JavaScript应用程序的打包工具 它的核心概念包括: 入口输出loaderplugin(插件)模式模块依赖图 二、webPack与Grunt\Grulp有什么区别? 首先Grunt/Gulp是任务运行器,用来实现流…...

Linux系统中的 sudo 权限会导致环境变量失效。

标题为什么 sudo 会破坏 配置的环境变量? 权限切换:sudo 以 root 用户 身份执行命令,root 用户的环境变量和当前用户(user)的环境变量是隔离的。 环境变量丢失:nvm 依赖的 PATH、等环境变量是通过用户 She…...

目标分割模型优化自身参数都是梯度下降算法吗?

在计算机视觉的深度学习任务中,诸如 CNN、FCN、U-Net、DeepLab 系列模型已成为图像分类与图像分割任务的核心架构。它们在网络结构和任务上有所差异,但是否共享同一种优化机制?是否都使用梯度下降?优化过程中又有什么本质区别&…...

前端请求传参与后端匹配的接收方式Content-Type类型

文章目录 一、Content-Type简介二、Content-Type类型三、常⽤类型3.1. application/json:JSON数据格式3.2. application/x-www-form-urlencoded:普通表单格式(键值对)3.3. multipart/form-data:多部分表单格式&#xf…...

解决:VSCode C++ conan 安装第三方库后 头文件报错

文章目录 1 头文件include路径查找报错参考 1 头文件include路径查找报错 找到conan_toolchain.cmake中 INCLUDE_PATH list(PREPEND CMAKE_INCLUDE_PATH "/Users/hanliqiang/.conan2/p/b/fmte8c4f7a755477/p/include")生成C编译配置 CtrlShiftP 中选择C Edit Confi…...

(leetcode算法题)309. 买卖股票的最佳时机含冷冻期

按照题目要求,研究对象是最后一天结束后获得的最大利润 那么就可以把问题拆分成 第 1 天结束后获得的最大利润, 第 2 天结束后获得的最大利润, 第 i 天结束后获得的最大利润, 由于规则中强调不能同时参与多笔交易&#xff0c…...

win10和win11系统修复工具各类故障解决

点赞关注一下哈: 在使用电脑时可能会遇到一些问题,通过上网查找解决方法费时费力,而有了这个小工具可以很方便的解决问题。有几十种解决方案,值得下载保存哦。 1、使用方法: 解压文件,双击文件夹内的exe文件…...

微硕WSP6949 MOS管在补水仪中的应用与市场分析

微硕WSP6949 MOS管在补水仪中的应用与市场分析 一、引言 补水仪作为一种常见的家用电器,其核心部件之一是驱动电路,而MOS管作为驱动电路中的关键元件,其性能直接影响到补水仪的运行效率和稳定性。微硕半导体推出的WSP6949 MOS管&#xff0c…...

【通过Zadig给鼠标适配器安装驱动后,鼠标动不了,无法恢复的解决办法】

【通过Zadig给鼠标适配器安装驱动后,鼠标动不了,无法恢复的解决办法 问题产生缘由感谢这位大佬提供的解决办法解决办法 问题产生缘由 通过Zadig给鼠标适配器安装USB GAMING MOUSE这个驱动后,鼠标动不了,无法恢复(重启电脑,卸载鼠标驱动再重装也不可以), 不过还好,我用的是笔记…...

基本表单的实现即登录注册页面的实现

1.登录页面&#xff08;opType.value0&#xff09; 2.注册页面&#xff08;opType.value1&#xff09; 3.注意 el-form-item中的prop对应的是rules里面的key值 <el-form-itemlabel"邮箱"prop"email"label-width"100px"> </el-form-i…...

JVM 什么是逃逸分析?它有哪些优化手段?

JVM 逃逸分析 (Escape Analysis) 是一种编译器优化技术&#xff0c;主要由即时编译器 (JIT Compiler) 在运行时进行&#xff0c;用于分析对象的作用域&#xff0c;判断对象是否会逃逸出方法或线程。 什么是逃逸&#xff1f; 在 JVM 的上下文中&#xff0c;“逃逸” 指的是对象…...

Spring AI与通义千问的完美结合:构建智能对话应用

Spring AI是Spring生态系统中的新成员,它为开发人员提供了一套简单而强大的工具,用于集成各种AI大模型。本文将介绍如何使用Spring AI与阿里云通义千问大模型进行集成,构建智能对话应用,帮助你快速掌握AI应用开发的核心技能。 引言 随着人工智能技术的快速发展,越来越多的…...

CST仿真天线流程

基础操作指导 如何建模、设置边界条件、端口激励等。 材料属性设置、网格划分优化。 仿真参数配置&#xff08;频域/时域仿真&#xff09;。 常见仿真案例 天线设计&#xff08;如微带天线、波导天线&#xff09;。 微波器件&#xff08;滤波器、功分器、耦合器&#xff0…...

Vue 组件化开发

引言 在当今的 Web 开发领域&#xff0c;构建一个功能丰富且用户体验良好的博客是许多开发者的目标。Vue.js 作为一款轻量级且高效的 JavaScript 框架&#xff0c;其组件化开发的特性为我们提供了一种优雅的解决方案。通过将博客拆分成多个独立的组件&#xff0c;我们可以提高…...

java + spring boot + mybatis 通过时间段进行查询

前端传来的只有日期内容&#xff0c;如&#xff1a;2025-04-17 需要在日期内容的基础上补充时间部分&#xff0c;代码示例&#xff1a; /*** 日志查询&#xff08;分页查询&#xff09;* param recordLogQueryDTO 查询参数对象* return 日志列表*/Overridepublic PageBean<…...

基于pycatia的CATIA自动化干涉检测系统开发全解析

引言 在智能制造时代&#xff0c;三维数模的干涉检测效率直接影响产品开发周期。本文基于Python的pycatia库&#xff0c;深入解析CATIA自动化干涉检测系统的开发要点与工业实践&#xff0c;结合达索系统最新技术趋势&#xff0c;为工程师提供一套高可靠性的二次开发方案。 一、…...

v-model进阶+ref+nextTick

一、v-model进阶 复习 v-model v-model: 双向数据绑定指令 数据 <-> 视图: 数据和视图相互影响, 因此被称为双向数据绑定指令 1> 数据变了, 视图也会跟着变 (数据驱动视图) 2> 视图变了, 数据也会跟着变 1. v-model 原理 v-model只是一个语法糖, 比较好用, …...

vscode+keil嵌入式软件开发全流程

vscodekeil嵌入式软件开发全流程 1 安装MinGW-w64 &#xff08;1&#xff09; MinGW-w64 是一个用于Windows操作系统的开发工具集&#xff0c;其包含了C语言编译器 GCC&#xff08;GNU Compiler Collection&#xff09;&#xff0c;官网地址&#xff1a;https://www.mingw-w6…...

GitHub 从入门到精通完全指南(2025版)

以下是GitHub 从入门到精通完全指南,整合优质教程及官方文档,涵盖基础操作、协作开发、高级功能及实战技巧,助你快速掌握 GitHub 全流程。 一、GitHub 入门篇 1. 注册与配置 注册 GitHub 账号 访问 GitHub 官网,点击“Sign Up”填写邮箱、用户名、密码完成注册。建议绑定双…...

总结【过往部分项目经历一(计算机图形学方向)】

总结【过往部分项目经历】 1.蜂窝填充算法2.孔洞识别算法3.扫掠轮廓计算4.二维排料算法5.最大内接圆算法 1.蜂窝填充算法 介绍: 主要从二维六角网格基本算法出发&#xff0c;基于自定义数据结构和拓扑关系&#xff0c;从二维到三维进行拓展&#xff0c;六角网格->六棱柱-&g…...

Flask(补充内容)配置SSL 证书 实现 HTTPS 服务

没有加密的http服务&#xff0c;就像在裸泳&#xff0c;钻到水里便将你看个精光。数据在互联网上传输时&#xff0c;如果未经加密&#xff0c;随时可能被抓包软件抓住&#xff0c;里面的cookie、用户名、密码什么的&#xff0c;它会看得一清二楚&#xff0c;所以&#xff0c;只…...

js逆向分享

某验三代 这玩意大家应该都人手一份了&#xff0c;也没啥好分享的了&#xff0c;需要注意的是&#xff0c;一共五个请求&#xff0c;分别是&#xff1a; "https://apiv6.geetest.com/gettype.php “https://apiv6.geetest.com/get.php” “https://api.geevisit.com/a…...

【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定

1、右键创建平面&#xff0c;立方体 2、点击场景根节点&#xff0c;shadows勾选enabled3、点击灯光&#xff0c;shadow enabled勾选 4、点击模型&#xff0c;勾选接收阴影&#xff0c;投射阴影&#xff08;按照需要勾选&#xff09; 5、材质创建 6、选中节点&#xff0c;找…...

CentOS 中安装 vim

1. 使用 Yum 安装 Vim 如果您的系统可以正常访问互联网&#xff0c;并且已经配置好了正确的 Yum 源&#xff0c;可以直接运行以下命令安装 vim&#xff1a; sudo yum install vim -y 如果默认的 vim 包不可用&#xff0c;可以尝试安装增强版 vim-enhanced&#xff1a; sudo yu…...

安全可靠+操作简捷——安科瑞预付费电表的用户体验升级

安科瑞顾强 在现代化用电场景中&#xff0c;预付费模式凭借其高效性与便捷性&#xff0c;已成为商业、工业及住宅用电管理的优选方案。安科瑞电气推出的DDSY1352/DTSY1352系列预付费电能表&#xff0c;搭配智能管理平台&#xff0c;为用户提供从精准计量、智能控制到数据分析的…...

AI与物联网的深度融合:开启智能生活新时代

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和物联网&#xff08;IoT&#xff09;作为两大前沿技术&#xff0c;正在加速融合&#xff0c;为我们的生活和工作带来前所未有的变革。这种融合不仅提升了设备的智能化水平&#xff0c;还为各行各业带来了新的机…...

赛灵思 XCVU095-2FFVB2104E XilinxFPGA Virtex UltraScale

XCVU095-2FFVB2104I 是 Xilinx&#xff08;现 AMD&#xff09;Virtex UltraScale 系列中的高端 FPGA 器件&#xff0c;基于 20nm 工艺&#xff0c;提供卓越的逻辑密度和高速串行 I/O 能力&#xff0c;广泛应用于 400G 网络、ASIC 原型验证及大型数据中心互联 该器件集成 1 176…...

leetcode0212. 单词搜索 II - hard

1 题目&#xff1a;单词搜索 II 官方标定难度&#xff1a;难 给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff…...

解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题

在开发中&#xff0c;我们经常需要使用 Node.js 和 NPM 来管理 JavaScript 项目依赖&#xff0c;而 NVM&#xff08;Node Version Manager&#xff09;是开发者在本地环境中管理多个 Node.js 版本的得力工具。不过&#xff0c;有时候在 VSCode 中配置完 NVM 后&#xff0c;可能…...

67.评论日记

我的评论本身也就是一种回答 沈阳车展帖子灵异失踪&#xff0c;究竟是谁干的&#xff1f;_哔哩哔哩_bilibili 2025年4月17日17:32:10...

Vscode 插件开发

文章目录 1、使用vscode官方插件生成框架&#xff0c;下载脚手架2、使用脚手架初始化项目&#xff0c;这里我选择的是js3、生成的文件结构如下&#xff0c;重要的就是以下两个文件4、代码5、打包使用6、发布官网地址7、publisher ID undefined provided in the extension manif…...

数据结构(6)

实验步骤&#xff1a; 任务一&#xff1a; 编写算法实现带头结点单链表的就地逆置,即利用原带头结点单链表的结点空间把元素序列 a0,al,……,an-i 逆置为 an-1,……,al, a0 [程序参数设计] 定义了一个带头结点的单链表结构体&#xff0c;并提供了初始化、尾部插入、打印、就地…...

【ROS】恢复行为

【ROS】恢复行为 前言恢复行为&#xff08;recovery_behavior&#xff09;概述恢复行为的参数示例&#xff1a;recovery_behavior.yaml 配置文件参数说明与配置原则恢复行为模块的参数设置reset_recovery&#xff08;重置行为&#xff1a;清除代价地图&#xff09;参数冲突说明…...

HashMap中put方法的执行流程

在 Java 编程中&#xff0c;HashMap 是一种常用的集合类&#xff0c;它以键值对&#xff08;Key-Value&#xff09;的形式存储数据&#xff0c;它具有高效查找、插入和删除的优势。 一.HashMap底层数据结构 JDK 1.7&#xff1a;采用 数组 链表 的结构。JDK 1.8&#xff1a;优…...

基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割|文献速递-深度学习医疗AI最新文献

Title 题目 Deep learning based coronary vessels segmentation in X-ray angiographyusing temporal information 基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割 01 文献速递介绍 有创冠状动脉造影&#xff08;ICA&#xff09;在冠状动脉疾病&#…...

JVM详解(曼波脑图版)

(✪ω✪)&#xff89; 好哒&#xff01;曼波会用最可爱的比喻给小白同学讲解JVM&#xff0c;准备好开启奇妙旅程了吗&#xff1f;(๑˃̵ᴗ˂̵)و &#x1f4cc; 思维导图 ━━━━━━━━━━━━━━━━━━━ &#x1f34e; JVM是什么&#xff1f;&#xff08;苹果式比…...

深度理解指针之例题

文章目录 前言题目分析与讲解涉及知识点 前言 对指针有一定了解后&#xff0c;讲一下一道初学者的易错题 题目分析与讲解 先定义一个数组跟一个指针变量 然后把数组名赋值给指针变量————也就是把首地址传到pulPtr中 重点是分析这一句&#xff1a; *&#xff08;pulPtr…...

Electricity Market Optimization(VI) - 机组组合问题的 GAMS 求解

根据之前的博客&#xff0c;我们考虑机组的启动成本只讨论考虑以下几种约束的机组组合问题&#xff1a; 功率平衡约束火电机组启停约束和爬坡约束备用容量约束 min ⁡ ∑ t 1 T ( C t g e n C t u c C t curt ) s.t. C t g e n ∑ i ∈ [ G ] c i ( p i , t c ) C t u c …...

【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对

问题背景 给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k&#xff0c;请你返回满足 0 ≤ i < j < n 0 \le i < j < n 0≤i<j<n&#xff0c; n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且…...

赛灵思 XCVU3P‑2FFVC1517I XilinxFPGA Virtex UltraScale+

XCVU3P‑2FFVC1517I AMD Xilinx Virtex UltraScale 系列中的高端 FPGA&#xff0c;基于 TSMC 16 nm FinFET 工艺及第三代 3D IC 堆栈互连技术&#xff08;SSI&#xff09;&#xff0c;旨在为数据中心互连、高性能计算、网络加速和信号处理等苛刻应用提供领先的性能‑功耗比。…...

Rust 与 JavaScript 的 WebAssembly 互操作指南

1. Rust 中导入和导出 JS 函数 导入 JS 函数 Rust 代码中可以通过 extern 块导入 JavaScript 函数&#xff1a; #[link(wasm_import_module "mod")] // 指定 JS 模块名 extern { fn foo(); // 声明导入的 JS 函数 }如果没有指定 wasm_import_module&#xff0c;默…...

2025年特种设备安全管理 A 证考试全解析

对于想要获取特种设备安全管理 A 证的人员来说&#xff0c;了解考试的具体内容与形式是备考的关键。下面将为大家全面解析特种设备安全管理 A 证考试&#xff0c;助力大家顺利备考&#xff0c;成功取证。 特种设备安全管理 A 证考试内容丰富&#xff0c;涵盖多个重要领域。特种…...

TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码

本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...

java 设计模式之策略模式

简介 策略模式&#xff1a;策略模式可以定制目标对象的行为&#xff0c;它尅通过传入不同的策略实现&#xff0c;来配置目标对象的行为。使用策略模式&#xff0c;就是为了定制目标对象在某个关键点的行为。 策略模式中的角色&#xff1a; 上下文类&#xff1a;持有一个策略…...

BH1750光照传感器---附代码

目录 BH1750简介BH1750指令集BH1750工作流程 BH1750简介 VCC-->电源正&#xff1b; ADDR-->地址端口&#xff1b; GND-->电源负&#xff1b; PA5-->SDA-->I2C数据线&#xff1b; PA3-->SCL-->I2C时钟线&#xff1b; DVI-->I2C端口参考电压&#xff1b…...

docker harbor私有仓库登录报错

docker harbor私有仓库登录报错如下&#xff1a; [rootsrv-1 ~]# docker login -u user1 -p pwd1 harbor.chinacloudapi.cn WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://harbor.chinacloudapi.…...