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

【AutoTest】自动化测试工具大全(Java)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

  • 自动化测试工具大全(Java)
  • 自动化测试工具大全(Python)

自动化测试工具大全(Java)

  • 1.xUnit 框架
  • 2.TDD / ATDD / BDD
  • 3.模型驱动测试(Model-Based Testing)
  • 4.代码分析与覆盖率
  • 5.Web UI 测试自动化
    • 框架和封装
    • 拓展
  • 6.移动端测试自动化
  • 7.API 测试自动化
  • 8.Windows UI 测试自动化
  • 9.Unix / Linux UI 测试自动化
  • 10.MacOS UI 测试自动化
  • 11.服务器端测试自动化
  • 12.虚拟环境
  • 13.性能 / 压力 / 负载测试
  • 14.安全检测
  • 15.构建工具
  • 16.持续集成
  • 17.报告
  • 18.编辑器、IDE 和控制台
  • 19.ORM 框架和库
  • 20.有用的库
  • 21.测试数据
  • 22.数据库测试自动化

1.xUnit 框架

  • JUnit:一个广泛使用的 Java 单元测试框架,用于编写和运行可重复的自动化测试。它是 xUnit 测试框架家族的一部分,支持注解(如 @Test)、断言(assertEquals 等)和测试生命周期管理(@Before@After)。

  • TestNG:TestNG 是一个受 JUnit 和 NUnit 启发的测试框架,但引入了许多新功能,使其更强大且更易于使用。TestNG 的全称是 Testing, Next Generation(下一代测试)。

  • Test Data Supplier:Test Data Supplier 是 TestNG 中提供测试数据的一种机制,主要通过 @DataProvider 注解来实现。它允许你将测试数据与测试逻辑分离,使测试更加灵活和可维护。

  • Sunshine:基于 Java 的 xUnit 测试运行器(如 TestNG、JUnit)的封装,能自动在 JAR 文件中查找测试类并传递给测试运行器,同时报告执行状态。

2.TDD / ATDD / BDD

  • JBehave:JBehave 是一个 行为驱动开发BDDBehavior-Driven Development)框架,专门用于 Java 应用程序。它允许开发者、测试人员和业务分析师通过自然语言描述软件行为来协作定义需求,并将这些描述转化为可执行的测试用例。BDD 是测试驱动开发(TDD)和验收测试驱动设计(ATDD)的演进,旨在让初学者和专家都能更轻松直观地使用这些实践。

  • Cucumber-JVM:Cucumber-JVM 是一个基于 Java 的行为驱动开发测试框架,它是 Cucumber 在 JVM(Java 虚拟机)平台上的实现。它允许开发者、测试人员和业务分析师使用自然语言(Gherkin 语法)编写可执行的测试规范,并将其映射到 Java 代码实现自动化测试。

  • JGiven:JGiven 是一个基于 Java 的行为驱动开发框架,旨在提供更流畅、更结构化的测试代码编写方式。与 Cucumber-JVM 和 JBehave 不同,JGiven 不依赖 Gherkin 语法,而是直接在 Java 代码中使用 Given-When-Then 风格编写测试,使测试逻辑更贴近代码,同时保持可读性。

  • easyb:easyb 是一个基于 Groovy 的行为驱动开发测试框架,旨在让开发者、测试人员和业务分析师能够用自然语言编写可执行的测试规范。它结合了 Groovy 的动态语言特性和 BDD 的 Given-When-Then 风格,使得测试代码更易读、更接近业务需求。

  • Robot Framework:Robot Framework 是一个通用的自动化测试框架,采用 关键字驱动(Keyword-Driven) 和 数据驱动(Data-Driven)的设计模式,适用于功能测试、API 测试、UI 测试等场景。它使用简单、高度可扩展,并支持自然语言编写测试用例,适合测试人员、开发者和业务分析师协作。

  • awesome-robotframework:awesome-robotframework 是一个精选的 Robot Framework 生态资源列表,类似于 GitHub 上常见的 awesome-xxx 系列项目(如 awesome-pythonawesome-java)。它由社区维护,收集了与 Robot Framework 相关的最佳工具、库、教程、扩展和实用资源,帮助用户更高效地使用该框架。

  • Spectrum:Spectrum 是一个专门为 Java 8 设计的轻量级 BDD 测试框架,它通过 Lambda 表达式和流畅的 API 提供更符合自然语言的测试编写方式。灵感来自 Jasmine、RSpec 和 Cucumber。

  • Gauge:轻量级、跨平台的测试自动化工具,可用业务语言编写测试用例。

  • Spock:基于 Java 和 Groovy 的规格化(Specification)测试框架。

  • Concordion:灵活且可扩展的 BDD / SBE 工具,使用业务语言创建美观的 “活文档”。

  • cucumber-report-db:将 Cucumber-JVM 的 BDD 测试结果存储在数据库中,并提供报表功能。

3.模型驱动测试(Model-Based Testing)

  • GraphWalker:一款模型驱动测试框架。该工具可读取多种格式(graphmldotjson)的模型,并从中生成测试。

4.代码分析与覆盖率

  • SonarQube:开源项目,用于管理代码质量。

  • Gradle Quality Plugin:用于 Java 和 Groovy 项目的静态代码分析插件,集成了 Checkstyle、PMD、FindBugs 和 CodeNarc。插件实现了统一的控制台输出,大大简化了开发者的工作流程,让违规检查的体验类似编译错误。

  • Qulice:Java 项目的静态分析质量控制工具。它结合了最好的静态分析工具并对它们进行预配置,因此无需单独使用或配置各个工具。

  • JaCoCo:免费的 Java 代码覆盖率库,由 EclEmma 团队创建,基于多年对已有库的使用和集成经验。

5.Web UI 测试自动化

  • Selenium:可移植的 Web 应用测试框架。

  • SikuliX:能自动化任何你在桌面屏幕上看到的东西,支持 Windows、Mac 或部分 Linux / Unix。它使用基于 OpenCV 的图像识别来识别并控制 GUI 组件。在无法轻松访问 GUI 内部或应用/网页源代码的情况下,非常有用。

框架和封装

  • Selenide:基于 Selenium 的简洁 API,可编写稳定且可读的 UI 测试。

  • Selenified:一个开源框架,简化 Selenium 测试。为 Selenium 调用提供包装,以便详细报告、错误处理、简化测试环境配置(线程安全),并可本地或云端(Grid 或 SauceLabs)运行。

  • Serenity BDD (Thucydides):创新的开源库,用于编写更高效的自动化验收测试,并使用这些测试生成产品和项目的丰富文档和报告。

  • htmlelements:一个 Java 框架,以易用的方式在测试中与网页元素交互。

  • atlassian-selenium:开源(BSD)项目,旨在简化在 Selenium / WebDriver 中开发功能性测试。

  • stevia:Persado 提供的开源 QA 自动化测试框架。

  • darcy:一个开源的 Java 8 框架,使用声明式、与自动化库无关的 DSL 将用户界面建模为页面对象。

  • Satisfy:基于 Thucydides + JBehave 的开源 Java 框架,开箱即用地支持 WebUI、SOAP、REST、电子邮件、文件及随机数据生成等。

  • JDI Light:UI 测试自动化框架,帮助编写快速、可持续的测试,并提供清晰、可预测的测试运行结果。

  • Geb Framework:一个 Groovy 测试自动化框架,适配 WebDriver 的页面对象模式,并结合 Spock 进行 BDD。

  • FluentLenium:为 Selenium 提供了一个流畅的 Java 接口,使 UI 功能性测试可读性更强,也更可重用、可靠和稳健。

  • Selion:基于 TestNG 和 Selenium 构建,提供一组能力,让你能快速开始使用 WebDriver。可用于测试 Web 和移动端应用。

  • Frameworkium:一个可用于 Web、App 和 API 测试的自动化框架。集成了 saucelabsallurerest-assuredjacksongson。可通过 Jitpack 获取。

  • Carina:基于 Java 的测试自动化框架,统一了所有测试层:移动应用(Web、原生、混合)、Web 应用、REST 服务、数据库。

  • NoraUi:NoraUi(NOn-Regression Automation for User Interfaces)是一个基于 Selenium、Cucumber、Gherkin 的 Java 框架,可创建 GUI 测试项目,并能轻松集成到 CI 流程中。

  • Cubano:一个用 Java 编写的测试自动化框架,为开发验收和回归测试提供项目结构,无需花时间自行构建和维护。

  • Jalenium:一个 Java 的 Selenium API,可以轻松集成到任何使用 Selenium JAR 的 Maven Selenium Java 项目中。

  • TestZeus:专为 Salesforce 而构建的开源 UI 测试自动化框架,带有自动定位器功能。

拓展

  • BrowserMob Proxy:使得在浏览器中捕获性能数据更加容易,通常与 Selenium 或 Watir 等自动化工具结合使用。

  • Selenoid:Selenium Hub 的后继者,将浏览器运行在容器中。可在任何平台上实现可扩展、不可变、自行托管的 Selenium-Grid,只需一个可执行文件。

  • Selenium-Grid-Extras:简化对 Selenium Grid 节点的管理,通过在构建完成后清理测试环境来稳定节点。

  • Selenium Grid Extensions:通过额外功能扩展 Selenium Grid。可在 Selenium 测试中结合 Sikuli 使用。

  • Selenium Grid Router:一个轻量级服务器,用于将 Selenium WebDriver 请求路由和代理到多个 Selenium hub。

  • Docker Selenium Grid:一个提供 Selenium Grid 原生视频录制功能的项目,最初用于与 docker-selenium 项目结合。

  • Video Recorder Java:这个库可以轻松录制 UI 测试的视频,只需添加几个注解即可。

  • Zalenium:基于 Docker 的可弹性 Selenium Grid,支持视频录制、实时预览以及在线/离线仪表板。

  • SikuliFactory:针对 SikuliX 的 PageFactory 模型封装。

  • Mailosaur:通过 Mailosaur 进行邮件测试/自动化的 Java 客户端。

  • TrueAutomation.IO:旨在解决不稳定定位符(locators)问题的一个解决方案。

6.移动端测试自动化

  • Appium:一款开源测试自动化框架,用于测试原生、混合和移动网页应用。它通过 WebDriver 协议驱动 iOS 和 Android 应用。
  • Calabash:一款跨平台(Android 和 iOS)测试自动化框架,针对原生和混合应用。语法易于理解,即便非技术人员也能编写和执行应用的自动化验收测试。
  • Robotium:全面支持原生和混合应用的 Android 测试自动化框架。可轻松编写功能性、系统以及用户验收测试,覆盖多个 Android Activity。
  • UIAutomator:一种高效测试 UI 的方式,可针对真实 Android 设备和模拟器执行自动化功能测试。包含一个 GUI 工具(viewer)来扫描和分析 Android 应用的 UI 组件。
  • Espresso:Google 在 2013 年开源的 Android UI 测试自动化框架,API 小巧、预测性强、易于学习,基于 Android Instrumentation 框架之上,可快速编写简洁而可靠的 Android UI 测试。

7.API 测试自动化

  • hikaku:一个验证 REST-API 实现是否符合其规范的库。

  • Karate-DSL:Karate 是一个 BDD JavaScript 框架,可对任意类型的 Web 服务执行一系列调用,并检查响应是否符合预期。可轻松构建复杂请求、遍历响应数据并将响应数据链式传递给下一步。内置的有效载荷验证引擎可进行 “智能比对”,可选择忽略特定字段。

  • Retrofit:针对 Android 和 Java 的类型安全 HTTP 客户端。

  • REST-Assured:用于测试和验证 REST 服务的 Java 库。

8.Windows UI 测试自动化

  • SikuliX:使用图像识别来自动化任何在屏幕上可见的元素,适用于 Windows、Mac 或部分 Linux / Unix。

  • Winium for Desktop:基于 WinForms 和 WPF 平台的 Windows 应用自动化测试工具,开源。

  • WinAppDriver:Windows 应用程序驱动(WinAppDriver),在 Windows 10 上使用类似 Selenium 的方式进行 UI 测试自动化。支持通用 Windows 平台(UWP)、Windows Forms(WinForms)、WPF 以及经典 Win32 应用。

9.Unix / Linux UI 测试自动化

  • SikuliX:使用图像识别自动化桌面屏幕上的任何内容,适用于 Windows、Mac 或部分 Linux / Unix。

10.MacOS UI 测试自动化

  • SikuliX:使用图像识别自动化桌面屏幕上的任何内容。

11.服务器端测试自动化

  • Citrus:用 Java 编写的测试框架,可为企业 SOA 应用创建完全自动化的端到端测试用例。Citrus 模拟周边接口,支持多种传输协议(HTTP、JMS、TCP/IP、FTP、SOAP、XML、JSON 等)。

12.虚拟环境

  • Vagrant:易配置、可靠的工具,用于构建和维护可移植的虚拟开发环境。

  • Docker:当前流行的容器平台。开发者可用 Docker 来解决 “在我的机器上运行正常” 这类问题;运维团队可利用 Docker 在隔离的容器中并行运行和管理应用。

13.性能 / 压力 / 负载测试

  • Apache JMeter:功能测试和性能测试工具。

  • The Grinder:负载测试框架,可轻松使用多台负载注入机进行分布式测试。

  • Lightning:在 CI / CD 服务器上集成 JMeter 的非功能测试。

  • Tsung:基于 Erlang 的多协议分布式负载测试工具。

  • Gatling:基于 Scala、Akka 和 Netty 的开源负载测试框架,功能强大,易用且可维护度高。采用消息而非线程来模拟虚拟用户,可轻松模拟数千并发。

  • CRUX:基于 Kubernetes(AKS)和 JMeter 的性能测试集成方案,使性能测试轻松接入 Azure CI/CD 流程。可在每次性能构建时创建并销毁所需的基础设施,从而降低成本。

14.安全检测

  • BDD-Security:BDD-Security 使用 Gherkin 的 Given-When-Then 语法来描述安全需求,同时也能作为标准的单元/集成测试来执行,可集成到构建/测试/部署流程中。

15.构建工具

  • Apache Ant:Java 库和命令行工具,通过在构建文件中描述的目标和依赖来驱动过程。最常用场景是构建 Java 应用。

  • Apache Maven:管理软件项目和理解项目的工具。基于项目对象模型(POM)的概念,可统一管理构建、报告和文档。

  • Gradle:开源构建自动化系统,可自动化软件包的构建、测试、发布、部署等,也可用于生成静态网站或文档等。

16.持续集成

  • Jenkins:获奖的应用程序,用于监控重复任务的执行,如构建软件项目或执行定时任务。

  • TeamCity:功能强大且用户友好的持续集成与部署服务器,开箱即用。

  • Drone:面向繁忙开发团队的自助式持续集成平台。

  • Thundra Foresight:一款 CI 可观察性工具,为测试套件提供可见性。

17.报告

  • ReportPortal:强大的客户端-服务端报告工具。通过机器学习减少处理结果的时间,一键获取历史执行数据、日志、截图及任何二进制附件。可自定义 widget 和仪表板,提供实时集成,无需等待执行结束。支持各种语言和平台,免费、开源。

  • Allure:开源框架,用于生成清晰、易读的测试执行报告。

  • Gradle Allure Plugin:第三方 Gradle 插件,用于将 Allure 集成到 Spock、TestNG 和 JUnit 测试中。

  • ExtentReports:.NET 和 Java 的 HTML 报告库,易于使用且报告美观。可折叠查看测试和步骤摘要以及执行状态,便于快速分析。

  • ReportNG: 一个简单的 HTML 报告插件,基于 TestNG 单元测试框架。

  • Zebrunner Reporting: 测试自动化管理工具,用于聚合并展示测试结果。可提供详细报告,包括测试日志、截图和视频录制。

  • Difido-reports:一个生成 HTML 测试报告的通用实现。

  • cucumber-reporting:主要用于在 Jenkins 上发布 Cucumber 测试报告,也可用于 Maven 命令行或其他场景。生成无需依赖即可离线查看的报告,并包含图表展示 Cucumber 测试运行结果。

  • Cluecumber:针对 Cucumber 和 Karate 生成的 JSON 报告文件的报告库,可生成清晰而简洁的 HTML 报告,并具有高度的可定制性。

18.编辑器、IDE 和控制台

  • IntelliJ IDEA:免费开源的 IDE,支持 Java、Groovy、Scala 和 Android 开发。

  • IntelliJ IDEA Selenium plugin:用于简化在 IntelliJ IDEA 中创建 Selenium Web 测试的插件。

  • Eclipse:以 Java IDE、C/C++ IDE 和 PHP IDE 而闻名。

  • Genie plugin:用于纯 AS 3.0 SWF 和 Flash 游戏的功能测试自动化工具。

  • NetBeans:官方 Java 8 IDE,提供编辑器、代码分析和转换器,可轻松迁移到 Java 8 新特性。

  • VSCode:代码编辑,重新定义。

19.ORM 框架和库

  • Hibernate:帮助开发者更轻松地编写数据持久化代码,支持对象/关系映射(ORM),专注于数据持久层。

  • Morphia:一个轻量级、类型安全的库,用于在 MongoDB 与 Java 对象之间映射。提供类型安全且流式的 Query API,并使用注解配置,无需编写 XML。

  • MyBatis:一款优先支持自定义 SQL、存储过程和高级映射的持久化框架。几乎免去所有 JDBC 代码,不需手动设置参数或处理结果集。可使用简单的 XML 或注解进行配置。

20.有用的库

  • StreamEx:对 Java 8 Streams 的增强库。

  • Vavr:Java 8 的函数式扩展,提供持久化集合、函数式错误处理、并发编程模式、模式匹配等。

  • Lombok:消除样板代码的工具,通过注解自动生成常用的代码结构(如 getter / setter、构造方法等)。

  • AspectJ:Java 的无缝面向切面编程扩展。可实现错误检查与处理、同步、性能优化、监控和日志支持、调试支持、多对象协议等交叉关注点的干净模块化。

  • aShot:基于 WebDriver 的截图工具。可截图、裁剪、美化、对比。

  • WireMock:灵活的 Web 服务模拟与桩服务库。与一般的模拟工具不同,它会启动一个真实的 HTTP 服务器,以便与被测应用建立真实的 HTTP / HTTPS 连接。

  • MockServer:用于模拟任意通过 HTTP / HTTPS 协议通信的系统(服务、网站等)。

  • Mockito:流行的 Java Mock 框架,API 简洁,能编写易读的测试。

  • PowerMock:允许对通常被视为无法测试的代码进行单元测试的 Java 框架。

  • XMLUnit:用于测试和对比 XML 输出(Java 和 .NET 皆可)。

  • Awaitility:一种 DSL,可简洁地表达对异步系统的期望。

  • Beanmother:用于在测试中设置 Java Bean 测试数据的库。

  • PIT:进行变异测试的工具(Pitest)。

  • GreenMail:开源的易用邮件服务器测试套件,用于邮件集成测试或在开发中作为沙盒邮件服务器。

  • image-comparison:Java 库,用于对比两张相同尺寸的图像并可将差异部分用矩形标记。可忽略图像的某些区域,常用于自动化 QA 测试。

  • AssertJ:功能强大的流式断言框架,可与任意 xUnit 兼容。

  • Truth:Google 开发的 Java / Android 流式断言框架。

  • JSONassert:JSON 断言库。

  • selenium-to-restassured:允许在 Selenium WebDriver Cookies 和 Rest Assured 之间来回共享的适配器。

  • TestRail-JUnit:使基于 JUnit 的测试轻松集成 TestRail 的库。

  • TestRail-TestNG:使基于 TestNG 的测试轻松集成 TestRail 的库。

  • Allure-Environment-Creator:小型库,帮助轻松为 Allure 提供和存储环境信息。

  • Owner:一款简化 Java Properties 文件处理的库,减少配置解析所需的样板代码。

  • DeepfakeHTTP:一个使用 HTTP 转储(dump)作为响应来源的 Web 服务器工具,可模拟 REST、GraphQL 等各种 API 以进行客户端测试。

  • Cucable:一个 Maven 插件,可以将 Cucumber 场景拆分成最小可运行的 Feature 文件和 Runner 类,从而简化并行执行。

21.测试数据

  • Faker:生成姓名、地址、电话号码等虚拟数据的 Java 库实现。

  • Instancio:用于在单元测试中创建完整填充的对象,包含 JUnit 5 扩展。

22.数据库测试自动化

  • DBTestCompare:比较两个 SQL 查询结果的应用,支持所有提供 JDBC 驱动的数据库(已在 Microsoft SQL Server、Teradata、Snowflake、PostgreSQL 和 MySQL / MariaDB 测试)。

  • DBTestCompareGenerator:用于生成可由 DBTestCompare 运行的数据库测试的工具。

相关文章:

【AutoTest】自动化测试工具大全(Java)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…...

当DRAM邂逅SSD:新型“DRAM+”存储技术来了!

在当今快速发展的科技领域,数据存储的需求日益增长,对存储设备的性能和可靠性提出了更高的要求。传统DRAM以其高速度著称,但其易失性限制了应用范围;而固态硬盘SSD虽然提供非易失性存储,但在速度上远不及DRAM。 为了解…...

【算法】快速排序

算法系列六:快速排序 一、快速排序的递归探寻 1.思路 2.书写 3.搭建 3.1设计过掉不符情况(在最底层时) 3.2查验能实现基础结果(在最底层往上点时) 3.3跳转结果继续往上回搭 4.实质 二、快速排序里的基准排序 …...

Python快速入门指南:从零开始掌握Python编程

文章目录 前言一、Python环境搭建🥏1.1 安装Python1.2 验证安装1.3 选择开发工具 二、Python基础语法📖2.1 第一个Python程序2.2 变量与数据类型2.3 基本运算 三、Python流程控制🌈3.1 条件语句3.2 循环结构 四、Python数据结构🎋…...

机器学习中的数学(PartⅡ)——线性代数:2.1线性方程组

概述: 现实中很多问题都可被建模为线性方程组问题,而线性代数为我们提供了解决这类问题的工具。先看两个例子: 例子1: 一家公司有n个产品,分别是,生产上述产品需要m种原料,每个产品需要其中一…...

大模型上下文协议MCP详解(2)—核心功能

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 标准化上下文交互技术 1.1 实时数据接入能力 MCP(Model Context Protocol)通过标准化的接口,为 AI 模型提供了强大的实时数据接入能力,使其能够快速获取和处理来自不同数据源的实时信息。…...

检测到目标URL存在http host头攻击漏洞

漏洞描述 修复措施 方法一: nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server。 server {listen 80 default_server; …...

【 Beautiful Soup (bs4) 详解】

引言 Beautiful Soup 是 Python 最流行的 HTML/XML 解析库,能够从复杂的网页文档中高效提取数据。以下是其核心知识点及示例代码。 一、库简介 1. 核心模块 BeautifulSoup:主类,用于构建文档树结构Tag:表示 HTML/XML 标签的对象…...

Cuto壁纸 2.6.9 | 解锁所有高清精选壁纸,无广告干扰

Cuto壁纸 App 提供丰富多样的壁纸选择,涵盖动物、风景、创意及游戏动漫等类型。支持分类查找与下载,用户可轻松将心仪壁纸设为手机背景,并享受软件内置的编辑功能调整尺寸。每天更新,确保用户总能找到新鲜、满意的壁纸。 大小&am…...

人工智能之数学基础:复矩阵

本文重点 复矩阵是线性代数中以复数为元素的矩阵,是实矩阵在复数域上的自然推广。与实矩阵相比,复矩阵在数学性质、运算规则和应用场景上具有独特性,尤其在量子力学、信号处理、控制理论等领域发挥关键作用。 复矩阵的定义与表示 定义:复矩阵指的是元素含有复数的矩阵。…...

numpy初步掌握

文章目录 一、前言二、概述2.1 安装2.2 基础 三、数组3.1 数组创建3.1.1 从已有数据创建3.1.2 创建特殊值数组3.1.3 创建数值范围数组3.1.4 随机数组生成3.1.5 其他 3.2 数组属性 四、数组操作4.1 索引/切片4.2 数组遍历4.3 修改形状4.4 更多 五、数组运算5.1 常规运算5.2 广播…...

unity曲线射击

b站教程 using UnityEngine; using System.Collections;public class BallLauncher : MonoBehaviour {public float m_R;public NewBullet m_BulletPre;public Transform m_Target;private void Start(){StartCoroutine(Attack());}private void OnDestroy(){StopAllCoroutine…...

[特殊字符] 各领域 Dummy 开关实现方式大集合

涵盖硬件、软件、工业控制、游戏开发及网络虚拟化场景: 🔌 1. 电子 / 硬件工程 🛠️ (1) 物理替代方案 🧲 跳线帽(Jumper)或短路块 👉 模拟开关“开/关”状态 ✅ 示例:开发板上的 B…...

深度解析基于 Web Search MCP的Deep Research 实现逻辑

写在前面 大型语言模型(LLM)已成为我们获取信息、生成内容的重要工具。但它们的知识大多截止于训练数据的时间点,对于需要实时信息、跨领域知识整合、多角度观点比较的深度研究 (Deep Research) 任务,它们往往力有不逮。如何让 LLM 突破自身知识的局限,像人类研究员一样,…...

set 的 contains

语法&#xff1a; set<int> num_set; st.contains(num); 在 C 中&#xff0c;!num_set.contains(num - 1) 这行代码通常用于检查一个集合&#xff08;num_set&#xff09;中是否不存在某个值&#xff08;num - 1&#xff09;。以下是对这行代码的详细解释&#xff1a;…...

深度学习总结(7)

用计算图进行自动微分 思考反向传播的一种有用方法是利用计算图(compu- tation graph)​。计算图是TensorFlow和深度学习革命的核心数据结构。它是一种由运算(比如我们用到的张量运算)构成的有向无环图。下图给出了一个模型的计算图表示。 计算图是计算机科学中一个非常…...

linux网络环境配置

今天我们来了解一下ip获取的两种方式,知道两者的特点,并且学会配置静态ip,那么话不多说,来看. linux网络环境配置. .第一种方式(自动获取): 说明:登录后,通过界面的来设置自动获取ip,特点;Linux启动后会自动获取ip,缺点是每次自动获取的ip地址可能不一样. 第二种方式(指定I…...

SSRF漏洞公开报告分析

文章目录 1. SSRF | 获取元数据 | 账户接管2. AppStore | 版本上传表单 | Blind SSRF3. HOST SSRF一、为什么HOST修改不会影响正常访问二、案例 4. Turbonomic 的 终端节点 | SSRF 获取元密钥一、介绍二、漏洞分析 5. POST | Blind SSRF6. CVE-2024-40898利用 | SSRF 泄露 NTL…...

Java接口深度解析

一、为什么需要接口 接口是Java实现多态的重要机制&#xff0c;核心价值体现在&#xff1a; ​​实现多继承能力​​&#xff1a;突破单继承限制&#xff0c;允许类实现多个接口​​规范系统解耦​​&#xff1a;制定通用标准&#xff0c;隔离实现与调用方​​增强扩展性​​…...

VitePress 项目部署 cloudflare page 提示 npm run build 错误

构建的错误信息如下&#xff1a; 09:52:57.975 ➤ YN0000: Done with warnings in 3s 120ms 09:52:58.072 Executing user command: npm run build 09:52:58.817 npm ERR! Missing script: "build" 09:52:58.818 npm ERR! 09:52:58.818 npm ERR! To see a list of …...

#Hash 模式 vs History 模式

&#x1f4cc; 一、概念对比&#xff1a;Hash 模式 vs History 模式 特性Hash 模式History 模式URL 样式http://example.com/#/homehttp://example.com/home是否刷新页面❌ 不会刷新&#xff08;仅 hash 变化&#xff09;✅ 通过 HTML5 API 控制&#xff0c;不刷新原理window.…...

图像融合(Image Fusion)是什么

图像融合&#xff08;Image Fusion&#xff09;将来自相同类型传感器或成像方式的多幅图像&#xff08;通常内容是一样的&#xff09;进行融合&#xff0c;提高图像清晰度、对比度、空间或时间分辨率。得到比原始图像更清晰或信息更丰富的图像 常见类型&#xff1a; 多时相图…...

基于YOLOV8的中草药识别检测系统(包含数据集+PyQt5界面+系统代码)

一、简介 本项目构建了基于 YOLOV8 深度学习网络模型的中草药识别检测系统。凭借 YOLOV8 卓越的性能&#xff0c;该系统能够高效、精准地识别检测大枣、 百合、黄连 、乌梅、厚朴 、牡蛎 、海马 、罗汉果 、甘草、三七、 通草、 薏苡仁、 枸杞子 、八角茴香等 50种常见植物中草…...

【愚公系列】《高效使用DeepSeek》066-纠纷解决话术

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

7. 解立方根

题目描述 给定一个正整数 N&#xff0c;请你求 N 的立方根是多少。 输入描述 第 1 行为一个整数 T&#xff0c;表示测试数据数量。 接下来的 T 行每行包含一个正整数 N。 1≤T≤105&#xff0c;0≤N≤105。 输出描述 输出共 T 行&#xff0c;分别表示每个测试数据的答案…...

【愚公系列】《Python网络爬虫从入门到精通》047-验证码识别(第三方验证码识别)

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

C++指针(二)

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 本篇是介绍数组指针与指针数组的概念&#xff0c;用处&#xff0c;操作以及练习的。点赞破五十&#xff0c;更新下一期。 文章目录 1.数组指针 1.1数组指针的概念 1.2数组指针的用处 1.3数组指针的操…...

C++有关内存的那些事

个人主页&#xff1a;PingdiGuo_guo 收录转栏&#xff1a;C干货专栏 前言 本篇博客是讲解关于C内存的一些知识点的。 文章目录 前言 1.内存函数 1.1memcpy函数 1.2memmove函数 1.3 memset函数 2.各数据类型占用 2.1bool类型 2.2char类型 2.3short、int、long类型及整数…...

4.11时钟延迟

时钟偏差&#xff1a;同一个时钟域内的时钟信号到达数字电路的各个部分&#xff08;寄存器&#xff09;所用的时间差异 信号达到目标寄存器与接收寄存器的时间差【一般默认信号经过电路时间不计&#xff0c;】 图源&#xff1a;优化时钟网络之时钟偏移-CSDN博客 时钟周期是计…...

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10-

下列软件包有未满足的依赖关系: python3-catkin-pkg : 冲突: catkin 但是 0.8.10- 解决&#xff1a; 1. 确认当前的包状态 首先&#xff0c;运行以下命令来查看当前安装的catkin和python3-catkin-pkg版本&#xff0c;以及它们之间的依赖关系&#xff1a; dpkg -l | grep ca…...

ANSI C 和 C89/C90

在嵌入式开发中提到的 ANSI 通常是指 ANSI C 标准&#xff0c;而 C89 是该标准的另一个名称。以下是详细的解释和两者的关系&#xff1a; 1. ANSI C 是什么&#xff1f; ANSI&#xff08;American National Standards Institute&#xff0c;美国国家标准协会&#xff09;在 19…...

git仓库中.git文件夹过大的问题

由于git仓库中存放了较大的文件&#xff0c;之后即使在gitignore中添加&#xff0c;也不会导致.git文件夹变小。 参考1 2 通过 du -d 1 -h查看文件大小 使用 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail…...

【android bluetooth 框架分析 01】【关键线程 6】【主线程与核心子线程协作机制】

主线程与核心子线程的协作机制 一、蓝牙进程中的线程架构全景图 在Android蓝牙协议栈中&#xff0c;线程分工非常明确&#xff0c;形成了一个高效的协作体系。我们可以将其想象成一个医院的组织架构&#xff1a; 主线程&#xff1a;相当于医院的"前台接待处"&#…...

蓝桥杯比赛 python程序设计——神奇闹钟

问题描述 小蓝发现了一个神奇的闹钟&#xff0c;从纪元时间&#xff08;19701970 年 11 月 11 日 00&#xff1a;00&#xff1a;0000&#xff1a;00&#xff1a;00&#xff09;开始&#xff0c;每经过 xx 分钟&#xff0c;这个闹钟便会触发一次闹铃 (纪元时间也会响铃)。这引起…...

旋转位置编码

旋转位置编码&#xff08;Rotary Position Embedding&#xff0c;RoPE&#xff09;: 一种能够将相对位置信息依赖集成到 self-attention 中并提升 transformer 架构性能的位置编码方式。 和相对位置编码相比&#xff0c;RoPE 具有更好的外推性&#xff0c;目前是大模型相对位…...

2025年第十八届“认证杯”数学中国数学建模网络挑战赛【B题】完整版+代码+结果

2025年第十八届“认证杯”数学中国数学建模网络挑战赛B题完整word论文代码结果https://download.csdn.net/download/qq_52590045/90592749↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓…...

管理、切换多个 hosts工具之SwitchHosts

管理、切换多个 hosts工具之SwitchHosts 官网&#xff1a;https://switchhosts.vercel.app/zh github: https://github.com/oldj/SwitchHosts 原作者博客&#xff1a;https://oldj.net/article/2015/12/20/switchhosts-v3/ SwitchHosts是一个用于管理hosts文件的应用程序&…...

【Reinforcement Learning For Quadruped Control】2

奖励函数。奖励函数是状态和动作的函数 r t ( s t , a t , s t 1 ) r_t(s_t, a_t, s_{t1}) rt​(st​,at​,st1​)&#xff0c;是强化学习&#xff08;RL&#xff09;算法的驱动力。在四足机器人等复杂系统的背景下&#xff0c;奖励可能是速度偏差与期望速度的差异、关节扭矩值…...

Windows启动总是卡在LOGO画面有哪些原因

1. 硬件问题 硬盘故障&#xff08;HDD/SSD&#xff09;&#xff1a;坏道、损坏或接口松动。 内存故障&#xff1a;内存条接触不良或损坏。 外设冲突&#xff1a;U盘、移动硬盘、打印机等外接设备导致系统无法正常启动。 2. 系统文件损坏 Windows 关键文件丢失或损坏&#x…...

4月11日随笔

本来以为大风会很厉害&#xff0c;本来今天早八的微积分不想去了。但是起床发现并没有很大的风&#xff0c;还是去了。 中午回来的路上突然变天&#xff0c;雷阵雨转冰雹。下了大概半小时&#xff0c;所幸挨淋的不是很严重。 中午打了首胜&#xff0c;AI的基本弄完了&#xf…...

蓝桥杯 — — 接龙数列

蓝桥杯 — — 接龙数列 接龙数列 题源&#xff1a;0接龙数列 - 蓝桥云课 题目&#xff1a; 输入样例&#xff1a; 5 11 121 22 12 2023输出样例&#xff1a; 1分析&#xff1a; 首先观察评测用例规模&#xff0c; N N N 最大为 1 0 5 10^5 105&#xff0c;因此时间复杂度应…...

链式多分支规则树模型的应用

目录 引入 开始调用 初始化 执行流程 欢迎关注我的博客&#xff01;26届java选手&#xff0c;一起加油&#x1f498;&#x1f4a6;&#x1f468;‍&#x1f393;&#x1f604;&#x1f602; 引入 最近在学习一个项目中的链式多分枝规则树模型的使用&#xff0c;模型如下&#…...

【后端开发】初识Spring IoC与SpringDI、图书管理系统

文章目录 图书管理系统用户登录需求分析接口定义前端页面代码服务器代码 图书列表展示需求分析接口定义前端页面部分代码服务器代码Controller层service层Dao层modle层 Spring IoC定义传统程序开发解决方案IoC优势 Spring DIIoC &DI使用主要注解 Spring IoC详解bean的存储五…...

VMware虚拟机Ubuntu磁盘扩容

VMware中操作&#xff1a; 选择要扩容的虚拟机&#xff0c;点击编辑虚拟机设置 打开后点击磁盘——>点击扩展&#xff08;注意&#xff1a;如果想要扩容的话需要删除快照&#xff09; 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…...

嵌入式MCU常用模块

日后填坑。 无线通信模块 NRF24L01 基本介绍 使用方法 示例代码 蓝牙模块 基本介绍 使用方法 示例代码 WIFI模块 基本介绍 使用方法 示例代码 红外遥控模块 基本介绍 使用方法 示例代码 有线通信模块 can模块 基本介绍 使用方法 示例代码 传感器模块 DHT11模块 基本介绍 使用方…...

算法 模版

cin cout加快读取速度&#xff1a; ios::sync_with_stdio(false); 高精度*高精度 vector<int> mul(vector<int>& a, vector<int>& b) {vector<int>c(b.size()a.size()5,0);for (int i 0; i < a.size(); i) {for (int j 0; j < b.si…...

C++指针(三)

个人主页:PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 文章目录 前言 1.字符指针 1.1字符指针的概念 1.2字符指针的用处 1.3字符指针的操作 1.3.1定义 1.3.2初始化 1.4字符指针使用注意事项 2.数组参数&#xff0c;指针参数 2.1数组参数 2.1.1数组参数的概念 2.1…...

二分查找4:35. 搜索插入位置

链接&#xff1a;35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 本题是最基础的二分查找算法 class Solution { public:int searchInsert(vector<int>& nums, int target) {int left0;int rightnums.size()-1;int midleft(right-lef…...

数据可视化 —— 多边图应用(大全)

一、介绍&#xff1a; 多边形图&#xff0c;也就是在数据可视化中使用多边形来呈现数据的图表&#xff0c;在多个领域都有广泛的应用场景&#xff0c;以下为你详细介绍&#xff1a; 金融领域 投资组合分析&#xff1a;在投资组合管理中&#xff0c;多边形图可用于展示不同资…...

服务器加空间失败 growpart /dev/vda 1

[rootecm-2c5 ~]# growpart /dev/vda 1 unexpected output in sfdisk --version [sfdisk&#xff0c;来自 util-linux 2.23.2] [rootecm-2c5 ~]# xfs_info /dev/vda1 meta-data/dev/vda1 isize512 agcount21, agsize1310656 blks sectsz512 attr2, projid32bit1 crc1 finobt0…...