Jmeter中的断言(四)
13--XPath断言
功能特点
- 数据验证:验证 XML 响应数据是否包含或不包含特定的字段或值。
- 支持 XPath 表达式:使用 XPath 表达式定位和验证 XML 数据中的字段。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 XPath 断言
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “XPath 断言”。
-
配置 XPath 断言
- 名称:给 XPath 断言一个有意义的名称。
- XML 响应:选择要验证的 XML 响应部分(例如,响应数据)。
- XPath 表达式:输入用于匹配数据的 XPath 表达式。
- 验证存在性:选择是否验证节点的存在性。
- 验证值:选择是否验证节点的值。
- 期望值:输入期望的值。
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:选择是否忽略 XML 文档中的空白字符。
参数说明
- 名称:给 XPath 断言一个有意义的名称。
- XML 响应:选择要验证的 XML 响应部分,例如:
- 响应数据:验证响应体中的 XML 数据。
- 响应代码:验证HTTP响应代码。
- 响应消息:验证HTTP响应消息。
- 响应头:验证HTTP响应头。
- XPath 表达式:输入用于匹配数据的 XPath 表达式。
- 验证存在性:选择是否验证节点的存在性。
- 验证值:选择是否验证节点的值。
- 期望值:输入期望的值。
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:选择是否忽略 XML 文档中的空白字符。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的 XML 响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com)。 - 端口号:目标服务器的端口(例如
80)。 - 协议:HTTP或HTTPS(例如
HTTP)。 - 方法:POST
- 路径:请求的路径(例如
/login)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 XPath 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> XPath 断言。
- 配置 XPath 断言:
- 名称:验证用户ID
- XML 响应:响应数据
- XPath 表达式:
//userId - 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中
userId字段的值为12345。
优化建议
-
XPath 表达式:
- 确保 XPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 XPath 测试工具进行验证。
-
验证条件:
- 根据实际需求选择合适的验证条件。例如,如果只需要验证节点的存在性,选择“验证存在性”;如果需要验证节点的值,选择“验证值”。
-
命名空间:
- 如果 XML 响应中包含命名空间,确保在断言配置中正确定义命名空间前缀和 URI。
-
忽略空白:
- 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据中 userId 字段的值为 12345。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 XPath 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> XPath 断言。
- 配置 XPath 断言:
- 名称:验证用户ID
- XML 响应:响应数据
- XPath 表达式:
//userId - 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中
userId字段的值为12345。

14--断言持续时间
功能特点
- 性能验证:验证请求的响应时间是否在指定的时间范围内。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 Duration Assertion
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “Duration Assertion”。
-
配置 Duration Assertion
- 名称:给 Duration Assertion 一个有意义的名称。
- 最大持续时间(毫秒):输入请求的最大允许响应时间(毫秒)。
- 失败时停止:选择是否在断言失败时停止测试。
参数说明
- 名称:给 Duration Assertion 一个有意义的名称。
- 最大持续时间(毫秒):输入请求的最大允许响应时间(毫秒)。如果响应时间超过这个值,断言将失败。
- 失败时停止:选择是否在断言失败时停止测试。如果勾选,当断言失败时,JMeter 将停止执行后续的请求。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的响应时间是否不超过 500 毫秒。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com)。 - 端口号:目标服务器的端口(例如
80)。 - 协议:HTTP或HTTPS(例如
HTTP)。 - 方法:POST
- 路径:请求的路径(例如
/login)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 Duration Assertion:
- 右键点击登录请求 -> 添加 -> 断言 -> Duration Assertion。
- 配置 Duration Assertion:
- 名称:验证响应时间
- 最大持续时间(毫秒):500
- 失败时停止:根据需要选择是否勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的响应时间不超过 500 毫秒。
优化建议
-
最大持续时间:
- 根据实际需求设置合理的最大持续时间。例如,如果期望所有请求的响应时间都在 500 毫秒以内,设置最大持续时间为 500 毫秒。
-
失败时停止:
- 如果希望在断言失败时停止测试,选择“失败时停止”。这有助于快速发现性能问题并停止不必要的后续请求。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应时间不超过 500 毫秒。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 Duration Assertion:
- 右键点击登录请求 -> 添加 -> 断言 -> Duration Assertion。
- 配置 Duration Assertion:
- 名称:验证响应时间
- 最大持续时间(毫秒):500
- 失败时停止:根据需要选择是否勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的响应时间不超过 500 毫秒。

15--BeanShell断言
功能特点
- 自定义验证逻辑:使用 BeanShell 脚本语言编写自定义的断言逻辑。
- 灵活性高:可以访问 JMeter 变量、属性和响应数据,实现复杂的验证。
- 调试方便:可以在脚本中添加调试信息,帮助定位问题。
配置步骤
-
添加 BeanShell 断言
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “BeanShell 断言”。
-
配置 BeanShell 断言
- 名称:给 BeanShell 断言一个有意义的名称。
- 脚本:编写 BeanShell 脚本,实现自定义的断言逻辑。
- 参数:输入脚本所需的参数(可选)。
- 文件:选择包含脚本的文件(可选)。
参数说明
- 名称:给 BeanShell 断言一个有意义的名称。
- 脚本:编写 BeanShell 脚本,实现自定义的断言逻辑。
- 参数:输入脚本所需的参数(可选)。
- 文件:选择包含脚本的文件(可选)。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com)。 - 端口号:目标服务器的端口(例如
80)。 - 协议:HTTP或HTTPS(例如
HTTP)。 - 方法:POST
- 路径:请求的路径(例如
/login)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 BeanShell 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> BeanShell 断言。
- 配置 BeanShell 断言:
- 名称:验证用户ID
- 脚本:
import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.assertions.AssertionResult;SampleResult res = prev; String response = res.getResponseDataAsString();// 检查响应数据中是否包含 userId 为 12345 的字段 if (response.contains("<userId>12345</userId>")) {AssertionResult.setFailure(false);AssertionResult.setFailureMessage("Response contains the expected userId."); } else {AssertionResult.setFailure(true);AssertionResult.setFailureMessage("Response does not contain the expected userId."); }
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的响应数据中
userId字段的值为12345。
优化建议
-
脚本编写:
- 确保 BeanShell 脚本正确无误,能够准确实现所需的验证逻辑。可以使用 BeanShell 解释器进行测试。
- 使用 JMeter 提供的 API 和变量,例如
prev对象来访问上一个请求的结果。
-
调试信息:
- 在脚本中添加调试信息,帮助定位问题。例如,使用
log.info("Debug message: " + variable);记录调试信息。
- 在脚本中添加调试信息,帮助定位问题。例如,使用
-
性能考虑:
- 如果测试中包含大量的请求,确保脚本高效且简洁,避免影响测试性能。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据中 userId 字段的值为 12345。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 BeanShell 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> BeanShell 断言。
- 配置 BeanShell 断言:
- 名称:验证用户ID
- 脚本:
import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.assertions.AssertionResult;SampleResult res = prev; String response = res.getResponseDataAsString();// 检查响应数据中是否包含 userId 为 12345 的字段 if (response.contains("<userId>12345</userId>")) {AssertionResult.setFailure(false);AssertionResult.setFailureMessage("Response contains the expected userId."); } else {AssertionResult.setFailure(true);AssertionResult.setFailureMessage("Response does not contain the expected userId."); }
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的响应数据中
userId字段的值为12345。

相关文章:
Jmeter中的断言(四)
13--XPath断言 功能特点 数据验证:验证 XML 响应数据是否包含或不包含特定的字段或值。支持 XPath 表达式:使用 XPath 表达式定位和验证 XML 数据中的字段。灵活配置:可以设置多个断言条件,满足复杂的测试需求。 配置步骤 添加…...
vue2 src_Todolist编辑($nextTick)
main.js //引入Vue import Vue from "vue"; //引入App import App from ./App;//关闭Vue的生产提示 Vue.config.productionTip false;new Vue({el: #app,render: h > h(App),beforeCreate() {//事件总线Vue.prototype.$bus this;} });App.vue <template>…...
driver.js实现页面操作指引
概述 在访问某些网站的时候,第一次进去你会发现有个操作指引,本文引用driver.js,教你在你的页面也加入这般高大上的操作指引。 实现效果 实现 driver.js简介 driver.js是一个功能强大且高度可定制的基于原生JavaScript开发的新用户引导库…...
ffmpeg区域颜色覆盖
ffmpeg去除水印(遮盖指定区域)的几种办法_ffmpeg去水印-CSDN博客 ffmpeg -i a.mp4 -vf "drawboxx1560:y30:w310:h100:tfill" b.mp4 drawbox在视频帧上绘制一个矩形: x和y:矩形左上角的坐标。默认值是0。 w和h:矩形的宽度和高度。…...
【Python TensorFlow】进阶指南(续篇三)
在前几篇文章中,我们探讨了TensorFlow的高级功能,包括模型优化、分布式训练、模型解释等多个方面。本文将进一步深入探讨一些更具体和实用的主题,如模型持续优化的具体方法、异步训练的实际应用、在线学习的实现细节、模型服务化的最佳实践、…...
QT 实现仿制 网络调试器(未实现连接唯一性) QT5.12.3环境 C++实现
网络调试助手: 提前准备:在编写代码前,要在.pro工程文件中,添加network模块。 服务端: 代码: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtWidgets> #inclu…...
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-31
文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么ÿ…...
面试题---深入源码理解MQ长轮询优化机制
引言 在分布式系统中,消息队列(MQ)作为一种重要的中间件,广泛应用于解耦、异步处理、流量削峰等场景。其中,延时消息和定时消息作为MQ的高级功能,能够进一步满足复杂的业务需求。为了实现这些功能…...
stable diffusion生成模型
1、stable diffusion Stable Diffusion 是一种扩散模型,基于对图像的逐步去噪过程训练和生成。它的核心包括以下几个步骤: 扩散过程(Diffusion Process)在训练时,向真实图像逐步添加噪声,最终将其变为纯随机噪声。这是一个正向过程,目的是学习如何将复杂的图像分解成随…...
分治法的魅力:高效解决复杂问题的利器
文章目录 分治法 (Divide and Conquer) 综合解析一、基本原理二、应用场景及详细分析1. 排序算法快速排序 (Quicksort)归并排序 (Mergesort) 2. 大整数运算大整数乘法 3. 几何问题最近点对问题 4. 字符串匹配KMP算法的优化版 三、优点四、局限性五、分治法与动态规划的对比六、…...
Spring IOC实战指南:从零到一的构建过程
Spring 优点: 方便解耦,简化开发。将所有对象创建和依赖关系维护交给 Spring 管理(IOC 的作用)AOP 切面编程的支持。方便的实现对程序进行权限的拦截、运行监控等功能(可扩展性)声明式事务的支持。只需通过配置就可以完成对事务的管理,无需手…...
3.langchain中的prompt模板 (few shot examples in chat models)
本教程将介绍如何使用LangChain库和智谱清言的 GLM-4-Plus 模型来理解和推理一个自定义的运算符(例如使用鹦鹉表情符号🦜)。我们将通过一系列示例来训练模型,使其能够理解和推断该运算符的含义。 环境准备 首先,确保…...
量子感知机
神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…...
VM虚拟机装MAC后无法联网,如何解决?
✨在vm虚拟机上,给虚拟机MacOS设置网络适配器。选择NAT模式用于共享主机的IP地址 ✨在MacOS设置中设置网络 以太网 使用DHCP ✨回到本地电脑上,打开 服务,找到VMware DHCP和VMware NAT,把这两个服务打开,专一般问题就…...
IDEA 基本设置
设置主题 设置字体 设置编码格式 改变字体大小 开启 按住 ctrl 滚轮 改变字体大小。 开启自动编译...
Chrome 浏览器 131 版本新特性
Chrome 浏览器 131 版本新特性 一、Chrome 浏览器 131 版本更新 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来,用户可以通过 Google Lens 搜索屏幕上看到的任何图片或文字。 要使用此功能,请访问网站,并点击聚焦时出现在地…...
使用php和Xunsearch提升音乐网站的歌曲搜索效果
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
计算机毕设-基于springboot的高校网上缴费综合务系统视频的设计与实现(附源码+lw+ppt+开题报告)
博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...
STL关联式容器之map
map的特性是,所有元素都会根据元素的键值自动被排序。map的所有元素都是pair,同时拥有实值(value)和键值(key)。pair的第一元素被视为键值,第二元素被视为实值。map不允许两个元素拥有相同的键值。下面是<stl_pair.h>中pair的定义 tem…...
【HarmonyOS】鸿蒙应用唤起系统相机拍照
【HarmonyOS】鸿蒙应用唤起系统相机拍照 方案一: 官方推荐的方式,使用CameraPicker来调用安全相机进行拍照。 let pathDir getContext().filesDir;let fileName ${new Date().getTime()}let filePath pathDir /${fileName}.tmpfileIo.createRandomA…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
