【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 是一个 行为驱动开发(
BDD,Behavior-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-python、awesome-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:一款模型驱动测试框架。该工具可读取多种格式(
graphml、dot、json)的模型,并从中生成测试。
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 测试的自动化框架。集成了
saucelabs、allure、rest-assured、jackson、gson。可通过 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…...
idea报错java: 非法字符: ‘\ufeff‘解决方案
解决方案步骤以及说明 BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题? 最后重新编译,即可运行!!! BOM是什么? \ufeff 是 Unicode 中的 BOM࿰…...
PHY芯片与网络变压器接线设计指南——不同速率与接口的硬件设计原则
一、PHY与网络变压器的核心作用 • PHY芯片(物理层芯片) • 功能:实现数据编码(如Manchester、PAM4)、时钟恢复、链路协商(Auto-Negotiation)。 • 接口类型:MII/RMII/GMII/RGMII/…...
【学习笔记】计算机网络(八)—— 音频/视频服务
第8章 互联网上的音频/视频服务 文章目录 第8章 互联网上的音频/视频服务8.1概述8.2 流式存储音频/视频8.2.1 具有元文件的万维网服务器8.2.2 媒体服务器8.2.3 实时流式协议 RTSP 8.3 交互式音频/视频8.3.1 IP 电话概述8.3.2 IP电话所需要的几种应用协议8.3.3 实时运输协议 RTP…...
linux: 文件描述符fd
目录 1.C语言文件操作复习 2.底层的系统调用接口 3.文件描述符的分配规则 4.重定向 1.C语言文件操作复习 文件 内容 属性。所有对文件的操作有两部分:a.对内容的操作;b.对属性的操作。内容是数据,属性其实也是数据-存储文件,…...
记录一次后台项目的打包优化
文章目录 前言分析问题寻找切入点根据切入点逐一尝试cdn引入node包遇到的一些问题记录最终结果 前言 优化,所有开发者到一定的程度上,都绕不开的问题之一 例如: 首页加载优化白屏优化列表无限加载滚动优化,图片加载优化逻辑耦合…...
问题记录(四)——拦截器“失效”?null 还是“null“?
拦截器“失效”?null 还是"null"? 问题描述 这个问题本身并不复杂,但是却是一个容易被忽略的问题。 相信大家在项目中一定实现过强制登录的逻辑吧,巧了,所要介绍的问题就出现在测试强制登录接口的过程中&am…...
前端面试-HTML5与CSS3
HTML5/CSS3 1. HTML5语义化标签的作用是什么?请举例说明5个常用语义化标签及其适用场景 解答: 语义化标签通过标签名称直观表达内容结构,有利于: 提升可访问性(屏幕阅读器识别)改善SEO(搜索引…...
blender 导出衣服mesh为fbx,随后导入UE5,坐标轴如何保存一致
When exporting a clothing mesh from Blender to UE5 as an FBX file, maintaining consistent coordinate axes is crucial for proper positioning and orientation. Heres how to ensure coordinate consistency throughout the workflow: 当从 Blender 导出衣服 mesh 为 U…...
前端开发中的问题排查与定位:HTML、CSS、JavaScript(报错的解决方式)
目录 1.html 1. 结构错误调试:标签未正确嵌套 2. 语法问题调试:缺失引号 3. 断点调试:动态生成内容时的 JavaScript 错误 4. 网络调试:资源加载错误 5. 性能调试:页面加载性能 总结: 2.CSS 1. 定位…...
图论整理复习
回溯: 模板: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯ÿ…...
MIMO预编码与检测算法的对比
在MIMO系统中,预编码(发送端处理)和检测算法(接收端处理)的核心公式及其作用对比如下: 1. 预编码算法(发送端) 预编码的目标是通过对发送信号进行预处理,优化空间复用或…...
C++修炼:vector模拟实现
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞,关注&am…...
案例-索引对于并发Insert性能优化测试
前言 最近因业务并发量上升,开发反馈对订单表Insert性能降低。应开发要求对涉及Insert的表进行分析并提供优化方案。 一般对Insert 影响基本都在索引,涉及表已按创建日期做了分区表,索引全部为普通索引未做分区索引。 优化建议: 1、将UNIQUE改为HASH(64) GLOBAL IND…...
[区块链lab2] 构建具备加密功能的Web服务端
实验目标: 掌握区块链中密码技术的工作原理。在基于Flask框架的服务端中实现哈希算法的加密功能。 实验内容: 构建Flash Web服务器,实现哈希算法、非对称加密算法的加密功能。 实验步骤: 哈希算法的应用:创建hash…...
muduo库源码分析: TcpConnection
一. 主要成员: socket_:用于保存已连接套接字文件描述符。channel_:封装了上面的socket_及其各类事件的处理函数(读、写、错误、关闭等事件处理函数)。这个Channel中保存的各类事件的处理函数是在TcpConnection对象构造函数中注册…...
RuoYi-Vue升级为https访问-后端安装SSL证书(单台Linux服务器部署)
一、前言 当Nginx已经作为反向代理并成功配置了SSL证书时,前端客户端与Nginx的通信已经是加密的。但Nginx和后端服务之间的连接可能仍然存在明文传输的风险。 如果Nginx和后端服务位于同一台物理机器或者通过安全的内部网络(如私有VLAN或防火墙保护的内网)进行通信,则可以…...
EasyExcel系列:读取空数据行的问题
定义Excel模板时,会生产空行问问题,可以自定义监听器过滤空行。以PageReadListener为例。 /*** 自定义读取监听器,解决无法空行问题**/ Slf4j public class MyPageReadListener<T> extends PageReadListener<T> {Overridepublic …...
博客文章文件名该怎么取?
文章目录 🧾 1. 博客文章文件名该怎么取?📌 2. 为什么文件名重要?✅ 3. 推荐命名规范✅ 3.1 使用 **小写英文 中划线(kebab-case)**✅ 3.2 简短但具备语义✅ 3.3 如果是系列文章,可加前缀序号或…...
【GIT】放弃”本地更改,恢复到远程仓库的状态git fetch origin git reset --hard origin/分支名
如果你想完全放弃本地更改,恢复到远程仓库的状态,可以按照以下步骤操作: 获取远程最新版本 首先执行: git fetch origin这条命令会把远程仓库的最新提交拉取到你的本地,但不会自动合并到你的当前分支。 硬重置你的当前…...
有哪些哲学流派适合创业二
好的,让我们更深入地探讨如何将哲学与数学深度融合,构建一套可落地的创业操作系统。以下从认知框架、决策引擎、执行算法三个维度展开,包含具体工具和黑箱拆解: 一、认知框架:用哲学重构商业本质 1. 本体…...
【Web API系列】Web Shared Storage API之WorkletSharedStorage深度解析与实践指南
前言 在现代Web开发领域,数据存储与隐私保护的矛盾始终存在。传统存储方案如LocalStorage和Cookies面临着日益严格的安全限制,而跨域数据共享的需求却在持续增长。正是在这样的背景下,Web Shared Storage API应运而生,其核心组件…...
UE5 制作方块边缘渐变边框效果
该效果基于之前做的(https://blog.csdn.net/grayrail/article/details/144546427)进行修改得到,思路也很简单: 1.打开实时预览 1.为了制作时每个细节调整方便,勾选Live Update中的三个选项,开启实时预览。…...
MyBatis 如何使用
1. 环境准备 添加依赖(Maven) 在 pom.xml 中添加 MyBatis 和数据库驱动依赖: <dependencies><!-- MyBatis 核心库 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId&g…...
【MySQL】索引分类、聚簇与非聚簇索引,索引优化,常见explain分析索引案例,type字段
索引基本概念 索引是数据库中用于加速数据检索的数据结构,类似于书籍的目录。它通过建立额外的数据结构来存储部分数据,从而加快查询速度。 索引的优缺点 优点缺点加快数据检索速度占用额外存储空间保证数据唯一性(唯一索引)插…...
MySQL Binlog 数据恢复总结
🌲 总入口:你想恢复什么? 恢复类型 ├── 表结构 表数据(整张表被 DROP) │ ├── Binlog 中包含 CREATE TABLE │ │ └── ✅ 直接用 mysqlbinlog 提取建表 数据语句,回放即可 │ └── B…...
STM32 HAL库内部 Flash 读写实现
一、STM32F407 内部 Flash 概述 1.1 Flash 存储器的基本概念 Flash 存储器是一种非易失性存储器,它可以在掉电的情况下保持数据。STM32F407 系列微控制器内部集成了一定容量的 Flash 存储器,用于存储程序代码和数据。Flash 存储器具有擦除和编程次数的…...
2.3 Spark运行架构与流程
Spark运行架构与流程包括几个核心概念:Driver负责提交应用并初始化作业,Executor在工作节点上执行任务,作业是一系列计算任务,任务是作业的基本执行单元,阶段是一组并行任务。Spark支持多种运行模式,包括单…...
Redisson分布式锁全攻略:用法、场景与要点
目录 1. 普通可重入锁(RLock) 2. 公平锁(RFairLock) 3. 读写锁(RReadWriteLock) 4. 多重锁(RedissonMultiLock) 1. 普通可重入锁(RLock) import org.redisson.Redisson; import org.redisson.api.RLoc…...
软件测试——BUG概念
目录 一、软件测试生命周期 二、BUG 2.1BUG概念 2.2BUG要素 2.3BUG级别 2.4 BUG的生命周期 2.5测试人员与开发人员因为BUG发生争执 2.6BUG评审 一、软件测试生命周期 软件测试贯穿于软件的整个生命周期 软件测试的生命周期指测试流程,每个阶段有不同的目标…...
