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

Deepseek API+Python 测试用例一键生成与导出 V1.0.6(加入分块策略,返回更完整可靠)

随着Deepseek API+Python 测试用例一键生成与导出 V1.0.5的试用不断深入,在处理需求文档内容时,会出现由于文档内容过长导致大模型返回的用例远达不到我们的期望数量;另一方面,是接口文档的读取,如果接口数量过多,也会出现这种清空,所以,我们引入了分块策略,将内容分块后多次请求大模型,并将大模型返回的结果进行整合。主要优化点是支持从 docxymljsonexcel 文档中提取内容,采用合理的分块策略,确保大模型返回结果更完整可靠,同时支持导出为 jsonexcel 文件。这款工具将赋能测试工程师,让测试用例生成更智能、更高效!
V1.0.6在群友的试用反馈中,也一并修复了两个缺陷。

  • 文本标题为空时,未对预览内容进行分块
  • 当json格式的接口数据尺寸大于分块尺寸时,第一段数据将会是空值

感谢群友的反馈~~

支持的python环境是python 3.12
具体可参考Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)

工具使用阿里云百炼api-key,具体可参考结合pageassist与阿里百炼api实现deepseek-r1联网搜索功能

整体布局如下图所示:

在这里插入图片描述


一、工具核心功能概览

1.1 支持多种文档类型

工具支持以下文档类型,满足不同场景下的测试需求:

  • docx 文档:从需求文档中提取指定标题内容,进行分块处理后生成功能测试用例。
  • excel 文档:从接口文档中提取接口定义,基于内容进行分块生成接口测试用例。
  • json 文档:从接口文档中提取内容,合理分块后生成接口测试用例。
  • yml 文档:针对接口文档,按接口定义分块生成测试用例。

1.2 分块策略

分块策略是本工具的核心亮点,针对不同文档类型采用不同的分块方式:

  • 固定长度分块:将文本按固定长度切割,同时添加滑动窗口重叠,避免上下文丢失。
  • 内容分块:按接口定义或段落内容分块,确保数据完整性。

1.3 测试用例导出

生成的测试用例不仅支持在工具内预览,还可导出为 jsonexcel 格式,便于后续管理和使用。


二、分块策略详解与代码实现

2.1 docx 文档分块策略

针对 docx 文档,采用 固定长度+滑块重叠 的分块策略,确保大模型生成的功能测试用例上下文完整。 支持输入文档的文本标题提取有效内容。如下图所示。

在这里插入图片描述

代码实现
def chunk_text(self, text, chunk_size=1000, overlap=200):"""将文本按固定长度分块,同时添加滑动窗口重叠。适用于功能测试用例生成。参数:- text (str): 输入的长文本内容- chunk_size (int): 每块的最大字符数- overlap (int): 相邻块的重叠字符数返回:- list: 分块后的文本列表"""print("开始对docx文档进行分块")chunks = []start = 0text_length = len(text)while start < text_length:end = min(start + chunk_size, text_length)chunk = text[start:end]chunks.append(chunk)# 滑动窗口:下一块的起始位置向后移动 chunk_size - overlapstart += chunk_size - overlapprint(f"分块完成,共生成 {len(chunks)} 个块。")return chunks
代码注释
  1. chunk_size:每块的最大字符数(默认 1000)。
  2. overlap:相邻块的重叠字符数(默认 200),避免上下文丢失。
  3. 滑动窗口:通过滑块策略,生成内容连续且无缝对接的分块。

2.2 excel 文档分块策略

针对 excel 接口文档,按接口定义逐行分块,确保每个接口的数据完整,避免分割到不完整的定义。

代码实现
def chunk_xlsx(self, df, max_chunk_size=1000):"""将 .xlsx 接口文档按接口定义分块,确保接口数据完整。参数:- df (DataFrame): pandas 读取的 excel 数据。- max_chunk_size (int): 每个分块的最大字符数。返回:- list: 分块后的接口定义列表。"""print('开始对xlsx文档内容进行分块!')chunks = []current_chunk = ""current_size = 0for _, row in df.iterrows():row_content = row.to_json(force_ascii=False)  # 将行内容转换为 JSON 字符串row_size = len(row_content)if current_size + row_size > max_chunk_size:chunks.append(current_chunk)current_chunk = row_contentcurrent_size = row_sizeelse:current_chunk += "\n" + row_contentcurrent_size += row_sizeif current_chunk:chunks.append(current_chunk)return chunks
代码注释
  1. 逐行处理:遍历 excel 数据行内容,按行生成 JSON 字符串。
  2. 分块规则:若当前块大小超过最大字符数,则开始新块。

分块后的请求效果如图所示。

第一段:
在这里插入图片描述
第二段:
在这里插入图片描述
第三段:

在这里插入图片描述
将结果整合汇总并重新对用例ID进行排序:
在这里插入图片描述
可将结果导出为excel或json文档。


2.3 yml 文档分块策略

针对 yml 文件,按接口定义分块,确保每个接口的数据完整性,同时支持字典和列表两种结构。

代码实现
def chunk_yaml(self, data, max_chunk_size=1000):"""将 .yml 接口文档按接口定义分块,确保接口数据完整。参数:- data (dict or list): 已解析的 YAML 数据。- max_chunk_size (int): 每个分块的最大字符数。返回:- list: 分块后的接口定义列表。"""print("开始对yml文件进行分块~~")chunks = []current_chunk = ""current_size = 0if isinstance(data, dict):for key, value in data.items():interface_content = yaml.dump({key: value}, allow_unicode=True)interface_size = len(interface_content)if current_size + interface_size > max_chunk_size:chunks.append(current_chunk)current_chunk = interface_contentcurrent_size = interface_sizeelse:current_chunk += "\n" + interface_contentcurrent_size += interface_sizeelif isinstance(data, list):for item in data:interface_content = yaml.dump(item, allow_unicode=True)interface_size = len(interface_content)if current_size + interface_size > max_chunk_size:chunks.append(current_chunk)current_chunk = interface_contentcurrent_size = interface_sizeelse:current_chunk += "\n" + interface_contentcurrent_size += interface_sizeif current_chunk:chunks.append(current_chunk)return chunks
代码注释
  1. 支持 字典和列表 两种 YAML 数据结构。
  2. 使用 yaml.dump 将接口定义转为字符串,确保接口完整分块。

2.4 json 文档分块策略

针对 json 文件,按接口定义逐个分块,确保每个接口数据完整,避免分割到不完整的定义。

代码实现
def chunk_json(self, content, max_chunk_size=1000):"""将 .json 接口文档按接口定义分块,确保接口数据完整。参数:- content (list): 已解析的 JSON 数据列表。- max_chunk_size (int): 每个分块的最大字符数。返回:- list: 分块后的接口定义列表。"""print("开始对json文件进行分块~~")chunks = []current_chunk = ""current_size = 0for n, interface in enumerate(content):interface_content = json.dumps(interface, indent=2, ensure_ascii=False)interface_size = len(interface_content)if current_size + interface_size > max_chunk_size:if n == 0:  # 修复首个元素过大的 bugchunks.append(interface_content)else:chunks.append(current_chunk)current_chunk = interface_contentcurrent_size = interface_sizeelse:current_chunk += "\n" + interface_contentcurrent_size += interface_sizeif current_chunk:chunks.append(current_chunk)return chunks
代码注释
  1. 针对 JSON 列表内容逐个分块。
  2. 修复首个元素尺寸过大导致的分块错误。

三、工具优势

  1. 智能分块策略:针对不同文档类型采用最优分块方案,确保大模型生成结果完整可靠。
  2. 多文档支持:支持 docx、yml、json 和 excel 等多种文档类型,满足多场景需求。
  3. 高效导出:生成的测试用例支持一键导出为 json 或 excel 格式,便于后续管理。
  4. 贴心细节优化:如滑动窗口处理、首块 bug 修复等,确保工具稳定性和精准性。

四、总结

通过对文档进行智能分块处理,结合大模型生成测试用例的能力,大幅提升测试效率和用例质量。无论是功能测试还是接口测试,这款工具都能为测试工程师提供强大支持,助力实现测试工作的智能化升级!
快来试试这款工具,让测试用例生成变得轻松高效吧!源码已上传~

往期迭代文章:
Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)
Deepseek API+Python 测试用例一键生成与导出 V1.0.4 (接口文档生成接口测试用例保姆级教程)
Deepseek API+Python 测试用例一键生成与导出 V1.0.3
Deepseek API+Python测试用例一键生成与导出-V1.0.2
Deepseek API+Python测试用例一键生成与导出-V1.0.1
Deepseek API+Python测试用例一键生成与导出-V1
Deepseek API+Python测试用例一键生成与导出

相关文章:

Deepseek API+Python 测试用例一键生成与导出 V1.0.6(加入分块策略,返回更完整可靠)

随着Deepseek APIPython 测试用例一键生成与导出 V1.0.5的试用不断深入&#xff0c;在处理需求文档内容时&#xff0c;会出现由于文档内容过长导致大模型返回的用例远达不到我们的期望数量&#xff1b;另一方面&#xff0c;是接口文档的读取&#xff0c;如果接口数量过多&#…...

JDK 17 + Spring Boot 3 全栈升级实战指南--从语法革新到云原生,解锁企业级开发新范式

&#x1f680; 技术升级背景 随着 JDK 17&#xff08;LTS&#xff09; 与 Spring Boot 3 的发布&#xff0c;Java 生态迎来性能与开发效率的双重飞跃。相较于 JDK 8&#xff0c;JDK 17 在语法、API、GC 等方面均有显著优化&#xff0c;而 Spring Boot 3 则全面拥抱 Jakarta EE…...

phpStorm2021.3.3在windows系统上配置Xdebug调试

开始 首先根据PHP的版本下载并安装对应的Xdebug扩展在phpStorm工具中找到设置添加服务添加php web page配置完信息后 首先根据PHP的版本下载并安装对应的Xdebug扩展 我使用的是phpStudy工具&#xff0c;直接在php对应的版本中开启xdebug扩展&#xff0c; 并在php.ini中添加如下…...

DFS/BFS简介以及剪枝技巧

DFS简介 DFS含义 ⭐ DFS&#xff0c;即Depth-first-search&#xff0c;是深度优先搜索的简称。 它的主要思路是一直沿当前分支搜索&#xff0c;当搜索到尽头之后返回&#xff0c;再逐步向其他地方扩散。 我们可以通过一个树形结构说明DFS的遍历顺序 A/ | \B C D/ \ |E…...

LeetCode[15]三数之和

思路&#xff1a; 一开始我想的用哈希表来做&#xff0c;但是怎么想怎么麻烦&#xff0c;最后看解析&#xff0c;发现人家用的双指针&#xff0c;那我来讲一下我这道题理解的双指针。 这道题使用双指针之前一定要给数组进行排序&#xff0c;ok为什么排序&#xff1f;因为我需要…...

高性能计算面经

高性能计算面经 C八股文真景一面凉经自我介绍&#xff0c;介绍一下你做过的加速的模块(叠噪&#xff0c;噪声跟原图有什么关系&#xff1f;)OpenGL和OpenCL有什么区别&#xff1f;**1. 核心用途****2. 编程模型****3. 硬件抽象****4. API设计****5. 典型应用场景****6. 互操作性…...

HTML 标签类型全面介绍

HTML 标签类型全面介绍 HTML&#xff08;HyperText Markup Language&#xff09;是构建 Web 页面结构的基础语言。HTML 由不同类型的标签组成&#xff0c;每种标签都有特定的用途。本文将全面介绍 HTML 标签的分类及其用法。 1. HTML 标签概述 HTML 标签通常成对出现&#xf…...

【漫话机器学习系列】168.最大最小值缩放(Min-Max Scaling)

在机器学习和数据预处理中&#xff0c;特征缩放&#xff08;Feature Scaling&#xff09; 是一个至关重要的步骤&#xff0c;它可以使模型更稳定&#xff0c;提高训练速度&#xff0c;并优化收敛效果。最大最小值缩放&#xff08;Min-Max Scaling&#xff09; 是其中最常见的方…...

Spring Boot中对同一接口定义多个切面的示例,分别通过接口方式和注解方式实现切面排序,并对比差异

以下是Spring Boot中对同一接口定义多个切面的示例&#xff0c;分别通过接口方式和注解方式实现切面排序&#xff0c;并对比差异&#xff1a; 一、接口方式实现切面排序 1. 定义接口 // 服务接口 public interface MyService {void methodA();void methodB(); }// 接口实现类…...

基于SpringBoot的高校学术交流平台

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

数据治理的专题库

数据治理专题库的全面解析 一、专题库的定义与定位 数据治理专题库是围绕特定业务领域或场景构建的专业化数据库&#xff0c;其核心在于业务导向性和自主性。与基础库&#xff08;如人口、法人、地理信息等跨部门核心实体数据&#xff09;和主题库&#xff08;如市场监管中的…...

【MathType】MathType安装和嵌入word

MathType 是一款功能强大的数学公式编辑器&#xff0c;广泛应用于学术论文、教材编写、科研报告等领域。它支持多种数学符号、公式排版&#xff0c;并且与 Microsoft Word、Google Docs、WPS 等办公软件兼容&#xff0c;极大地方便了数学公式的输入和编辑 记录一下安装的过程 …...

mediacodec服务启动时加载media_codecs.xml

media.codec服务启动时&#xff0c; 会创建 implementation::Omx 和 implementation::OmxStore&#xff0c; 构造 Omx时&#xff0c; 会解析codec相关的xml文件&#xff0c;一般从会如下目录中&#xff0c; // from getDefaultSearchDirs() { "/product/etc",&quo…...

Scala(三)

本节课学习了函数式编程&#xff0c;了解到它与Java、C函数式编程的区别&#xff1b;学习了函数的基础&#xff0c;了解到它的基本语法、函数和方法的定义、函数高级。。。学习到函数至简原则&#xff0c;高阶函数&#xff0c;匿名函数等。 函数的定义 函数基本语法 例子&…...

kafka 报错消息太大解决方案 Broker: Message size too large

kafka-configs.sh --bootstrap-server localhost:9092 \ --alter --entity-type topics \ --entity-name sim_result_zy \ --add-config max.message.bytes10485880 学习营课程...

APScheduler定时

异步IO 定时(协程&#xff09; import asyncio import logging from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.triggers.cron import CronTriggerlogging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__)class Schedul…...

[GESP202503 C++六级题解]:P11962:树上漫步

[GESP202503 C++六级题解]:P11962:树上漫步 题目描述 小 A 有一棵 n n n 个结点的树,这些结点依次以 1 , 2 , ⋯   , n 1,2,\cdots,n 1,2,⋯,n 标号。 小 A 想在这棵树上漫步。具体来说,小 A 会从树上的某个结点出发,每⼀步可以移动到与当前结点相邻的结点,并且小 A…...

JavaScript基础-常见网页特效案例

在现代Web开发中&#xff0c;JavaScript不仅是处理业务逻辑的核心工具&#xff0c;也是实现丰富交互体验的关键。通过JavaScript&#xff0c;我们可以轻松地为网页添加各种动态效果和交互特性&#xff0c;从而提升用户体验。本文将介绍几种常见的网页特效案例&#xff0c;并提供…...

数据结构4

day4 5.队列 Queue 5.1 特性 队列是只允许再两端进行插入和删除操作的线性表&#xff0c;在队尾插入&#xff0c;在队头删除&#xff0c;插入的一段被称为“队尾”&#xff0c;删除的一端被称为“队头”。队列包括循环队列(顺序队列)、链式队列。结构&#xff1a;先进先出&…...

Rust 为什么不适合开发 GUI

前言 在当今科技蓬勃发展的时代&#xff0c;Rust 编程语言正崭露头角&#xff0c;逐步为世界上诸多重要基础设施提供动力支持。从存储海量信息到应用于 Linux 内核&#xff0c;Rust 展现出强大的实力。然而&#xff0c;当涉及构建 GUI&#xff08;图形用户界面&#xff09;时&…...

DisplayPort版本对比

目前视频接口标准基本上被HDMI和DisplayPort两大标准给瓜分天下了。 &#xff08;1&#xff09; HDMI由消费电子厂商主导&#xff0c;最新版本&#xff08;如HDMI 2.1&#xff09;理论带宽为48Gbps&#xff0c;主要应用于电视、游戏主机及家庭影音设备。 &#xff08;2&#xf…...

YOLOv12即插即用-Pconv(风车卷积)

1.模块介绍 PinwheelConv(风车状卷积)充分利用了IRST(红外搜索与跟踪)中的高斯分布特性,以极少的参数实现了高效且更大感受野的特性。此外,本文还提出了一种简单而高效的 SD 损失函数,有效缓解了标签 IoU 变化带来的不稳定性。通过与现有卷积模块和损失函数的广泛对比,…...

AI知识补全(十四):零样本学习与少样本学习是什么?

名人说&#xff1a;一笑出门去&#xff0c;千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;AI知识补全&#xff08;十三&#xff09;&#xff1a;注意力…...

Pycharm(十一):字符串练习题

1.输入一个字符串&#xff0c;打印所有偶数位上的字符(下标是0&#xff0c;2&#xff0c;4&#xff0c;6...位上的字符) # 练习题1:输入一个字符串&#xff0c;打印所有偶数位上的字符(下标是0&#xff0c;2&#xff0c;4&#xff0c;6...位上的字符) # 1.键盘录入字符串&…...

设计原则之迪米特法则

一、定义 迪米特法则又称为最少知识原则&#xff08;Law of Demeter&#xff0c;LoD&#xff09;&#xff0c;是一项用于面向对象设计的基本原则之一。该原则强调一个对象应该对其他对象有最少的了解&#xff0c;即一个类不应该知道太多关于其他类的内部细节。 二、好处 迪米…...

Debian系统_主板四个网口1个配置为WAN,3个配置为LAN

Debian系统_主板四个网口1个配置为WAN&#xff0c;3个配置为LAN 一、重新配置网口 1、查看当前网口的状态 ifconfig 或者 ip link show 或者 ls /sys/class/net 2、修改网络配置文件 sudo vi /etc/network/interfaces 注意WAN口的网关地址如果是192.168.3.1的话&#xff0c;L…...

Spring Boot 快速入手

前言&#xff1a;为什么选择 Spring Boot&#xff1f; &#x1f680; 在现代 Java 开发中&#xff0c;Spring Boot 已成为最流行的后端框架之一。无论是小型 Web 应用、企业级系统&#xff0c;还是微服务架构&#xff0c;Spring Boot 都能提供快速开发、自动配置、轻量级部署的…...

Ubuntu Live USB 如何使用

以下是使用 Ubuntu Live USB 的详细指南&#xff0c;涵盖启动、试用系统、安装系统及常用工具操作&#xff1a; 1. 制作 Ubuntu Live USB • 所需工具&#xff1a; • Ubuntu ISO 镜像&#xff08;从 官网 下载&#xff09;。 • U盘&#xff08;至少 4GB&#xff0c;数据将被…...

基于单片机的音乐播放器系统设计

基于单片机的音乐播放器系统设计是一个综合性较强的电子系统开发项目 系统概述 基于单片机的音乐播放器旨在利用单片机的控制功能,结合音频处理电路、存储单元等,实现音乐的播放、暂停、切换、音量调节等功能,可应用于小型便携式音频设备、电子玩具、智能家居背景音乐系统等…...

HttpClient-01.介绍

一.介绍 通过HttpClient&#xff0c;我们可以在Java程序中构造并发送Http请求。要使用HttpClient&#xff0c;就要导入依赖坐标。 核心API&#xff1a; HttpClient&#xff1a;Http客户端&#xff0c;使用它可以发送http请求。 HttpClients&#xff1a;构建器&#xff0c;使…...

2025年win10使用dockerdesktop安装k8s

一、写作背景 百度了一圈&#xff0c; 要么教程老&#xff0c;很多操作步骤冗余&#xff0c; 要么跑不通&#xff0c;或者提供的链接失效等情况。 二、看前须知 1、安装过程使用的AI辅助&#xff0c; 因为参考的部分博客卡柱了。 2、如果操作过程中遇到卡顿&#xff0c; …...

技术回顾day2

1.获取文件列表 流程&#xff1a;前端根据查询条件封装查询信息&#xff0c;后端接收后进行封装&#xff0c;封装为FileInfoQuery,根据fileInfoQuery使用mybatis的动态sql来进行查询。 2.文件分片上传 每次上传需要上传包括(文件名字&#xff0c;文件&#xff0c;md5值&#…...

软件工程-UML

例图&#xff0c;类图&#xff0c;状态图&#xff0c;顺序图&#xff0c;活动图 目录 例图 类图 状态图 顺序图 活动图 例图 例图由四个元素组成&#xff0c;参与者、用例、系统边界、参与者和用例之间的关系 参与者用一个小人表示&#xff0c;用例用椭圆表示&#xff…...

赛逸展2025“创新引擎”启动:限量席位,点亮科技绿色新征程

当今时代&#xff0c;科技革新与绿色发展已然成为推动社会进步的双引擎。2025第七届亚洲消费电子技术贸易展&#xff08;赛逸展&#xff09;敏锐捕捉这一趋势&#xff0c;重磅打造“科技创新专区”&#xff0c;并面向科技、绿色企业吹响限量招募号角。 这个独具特色的专区紧扣…...

前后台系统

前后台系统&#xff08;Foreground/Background System&#xff09;是一种常见的嵌入式系统编程模型&#xff0c;尤其是在那些不需要复杂操作系统的简单系统中。这种系统架构通常用于实时性要求不是极端苛刻的环境&#xff0c;但在响应外部事件时仍需要一定的及时性。下面我将详…...

VHT AMPDU

A - MPDU 由一个或多个 A - MPDU 子帧以及可变数量的 EOF填充子帧组成。 在 VHT中,存在如下填充: 一个 A - MPDU 子帧的填充子字段中有 0 - 3 个字节。 EOF 填充字段中有零个或多个 EOF 填充子帧。 EOF 填充子帧中EOF填充字节中有 0 - 3 个字节。 A - MPDU 帧结束前填充(A -…...

Spring框架如何做EhCache缓存?

在Spring框架中&#xff0c;缓存是一种常见的优化手段&#xff0c;用于减少对数据库或其他资源的访问次数&#xff0c;从而提高应用性能。Spring提供了强大的缓存抽象&#xff0c;支持多种缓存实现&#xff08;如EhCache、Redis、Caffeine等&#xff09;&#xff0c;并可以通过…...

助力 Windows 文件管理:重命名与清理重复文件软件精选

软件介绍 在日常的电脑使用中&#xff0c;高效管理文件至关重要。接下来为大家介绍几款实用软件&#xff0c;能助您轻松搞定文件管理难题。 AdvancedRenamer&#xff1a;全能批量重命名利器 专为 Windows 系统打造的 AdvancedRenamer&#xff0c;功能堪称强大。无论是文本替…...

重建二叉树(C++)

目录 1 问题描述 1.1 示例1 1.2 示例2 1.3 示例3 2 解题思路 3 代码实现 4 代码解析 4.1 初始化 4.2 递归部分 4.3 主逻辑 5 总结 1 问题描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果&#xff0c;请重建出该二叉树并返回它的头结点。 例如输入前序遍历序…...

Go+Gin实现安全多文件上传:带MD5校验的完整解决方案

后端 package mainimport ("encoding/json""fmt""log""net/http""os""path/filepath""github.com/gin-contrib/cors""github.com/gin-gonic/gin" )// 前端传来的文件元数据 type FileMetaRe…...

SwanLab Slack通知插件:让AI训练状态同步更及时

在AI模型训练的过程中&#xff0c;开发者常常面临一个难题&#xff1a;如何及时跟踪训练状态&#xff1f;无论是实验超参数的调整、关键指标的变化&#xff0c;还是意外中断的告警&#xff0c;传统的监控方式往往依赖手动刷新日志或反复检查终端&#xff0c;这不仅效率低下&…...

JavaScript元素尺寸与位置

目录 client 家族与 offset 家族 一、client 家族&#xff1a;内容区域 内边距 示例代码 应用场景 二、offset 家族&#xff1a;内容区域 内边距 边框 滚动条 示例代码 应用场景 三、综合应用场景 1. 动态调整元素高度 2. 拖拽元素 3. 判断元素是否在视口内 四…...

IS-IS:单区域集成配置与多区域集成配置

一、IS-IS概述 IS-IS&#xff08;Intermediate System to Intermediate System&#xff09; 是一种链路状态内部网关协议&#xff08;IGP&#xff09;&#xff0c;设计用于自治系统&#xff08;AS&#xff09;内部的路由选择。最初由ISO为OSI模型的无连接网络服务&#xff08;…...

Cesium学习(未完继续)

添加底图 viewer.imageryLayers.addImageryProvider(imageryProvider)常见 ImageryProvider 实现类 ArcGisMapServerImageryProvider&#xff1a;用于从 ArcGIS Server 获取影像数据。 BingMapsImageryProvider&#xff1a;用于从 Bing Maps 获取影像数据。 OpenStreetMapIm…...

【学Rust写CAD】22 双圆径向渐变的结构体(two_circle_radial_gradient.rs)

源码 //two_circle_radial_gradient.rs //! 定义双圆径向渐变的结构体和相关功能/// 表示一个双圆径向渐变的源 /// /// 该结构体描述了两个圆之间的渐变&#xff0c;支持矩阵变换和颜色查找表优化 #[derive(Debug, Clone, PartialEq)] pub struct TwoCircleRadialGradientSou…...

基于SpringAOP面向切面编程的一些实践(日志记录、权限控制、统一异常处理)

前言 Spring框架中的AOP&#xff08;面向切面编程&#xff09; 通过上面的文章我们了解到了AOP面向切面编程的思想&#xff0c;接下来通过一些实践&#xff0c;去更加深入的了解我们所学到的知识。 简单回顾一下AOP的常见应用场景 日志记录&#xff1a;记录方法入参、返回值、执…...

acwing 5438. 密接牛追踪2

农夫约翰有 NN 头奶牛排成一排&#xff0c;从左到右依次编号为 1∼N。 不幸的是&#xff0c;有一种传染病正在蔓延。 最开始时&#xff0c;只有一部分奶牛受到感染。 每经过一个晚上&#xff0c;受感染的牛就会将病毒传染给它左右两侧的牛&#xff08;如果有的话&#xff09…...

【Linux】线程池

目录 线程池 日志 线程池 在程序中&#xff0c;会预先创建一批线程&#xff0c;在内部会有一个叫任务队列task_queue的东西&#xff0c;未来如果有任务要处理&#xff0c;就把任务push到任务队列里&#xff0c;然后自动有线程去任务队列里拿任务并处理&#xff0c;如果没有任…...

【11408】考研英语长难句解析策略:三步断开与简化法,快速提升阅读得分

2025.04.01 英语断开长难句分析主谓心得 简化长难句心得 英语 断开长难句 在一些长难句中&#xff0c;有时从句的连词会被省略&#xff0c;且没有标点将其隔开&#xff0c;此时就无法通过标点和连接词来断开长难句。那么我们只能够通过分析主谓来断开长难句。 分析主谓 谓语…...

Spring Cloud 2023.x安全升级:OAuth2.1与JWT动态轮换实战

引言&#xff1a;当安全遇上云原生&#xff0c;零停机密钥轮换成为刚需 在微服务架构中&#xff0c;OAuth2.1与JWT已成为身份验证的黄金标准&#xff0c;但传统方案存在两大痛点&#xff1a; 密钥轮换风险&#xff1a;手动替换JWT密钥需重启服务&#xff0c;导致短暂鉴权中断&…...