- 博客(1311)
- 资源 (78)
- 收藏
- 关注
原创 自动化测试工具Katalon 之核心概念全解析
Katalon自动化测试工具核心概念解析:1)测试用例作为最小执行单位,支持图形化/脚本编写;2)测试套件用于批量管理用例执行;3)对象仓库集中管理UI元素定位;4)数据文件支持多种格式驱动测试;5)检查点提供多维度验证机制;6)关键字实现测试逻辑复用;7)监听器监控测试生命周期;8)报告系统生成详细测试结果;9)包含机制提升代码复用性;10)插件系统扩展功能边界。这些组件协同工作,构建了完整的自动化测试框架,支持从Web到移动端的全栈测试需求,通过模块化设计和数据驱动理念提高测试效率。
2025-06-25 22:25:47
43
原创 自动化测试工具Katalon 之快速介绍和示例
Katalon Studio是一款支持Web、API、移动端和桌面应用测试的自动化工具,整合了Selenium和Appium功能,提供图形界面和脚本编写(Groovy/Java)两种操作方式。基础功能免费,企业版收费2199美元/用户/年。安装需官网下载并登录账号使用。以百度搜索测试为例,演示了创建项目、录制脚本(含断言验证)和运行测试的完整流程。该工具适合不同技术水平的测试人员实现低代码或脚本化自动化测试。
2025-06-25 21:57:00
125
原创 Spring Boot 的Banner的介绍和设置
Spring Banner是Spring Boot启动时展示的ASCII艺术字及应用信息。默认显示Spring字样,用户可在resources目录下创建banner.txt文件自定义内容,支持使用在线工具生成艺术字,并可嵌入环境变量和版本信息等占位符。高级选项包括编程式生成Banner、控制输出模式(控制台/日志/关闭),以及通过SpringApplication或Builder API进行配置。注意应用属性仅在特定启动方式下生效,Banner实例会注册为单例Bean。
2025-06-24 23:25:32
46
原创 Karate UI 自动化测试基本概念之二
Karate UI测试框架提供了强大的调试和等待机制,主要包括: 调试功能:支持使用Visual Studio Karate扩展进行单步调试,可通过karate.stop()命令暂停测试进程检查页面元素; 重试机制:默认3次重试/3秒间隔,可通过configure动态调整,提供retry()、retry(count)和retry(count,interval)三种方式控制后续操作的重试行为; 等待API:包含waitFor()、waitForText()等8种等待方法,均内置重试逻辑,可结合retry()覆
2025-06-20 06:55:12
54
原创 Karate UI 基本概念之一
本文介绍了UI自动化测试中driver对象的使用方法及其特性。主要内容包括: driver对象在访问网页后初始化,其方法可通过Java接口定义理解,支持将getter/setter简化为JS属性调用; driver方法可省略前缀直接使用,并推荐使用propertyName格式提高可读性; 3.支持链式调用的对象类型(Driver、Element等),可通过组合方法简化代码; 4.提供Key变量支持特殊按键操作,列举了完整的键盘按键代码常量。文中通过具体示例展示了简化写法、链式调用和特殊按键的使用方式。
2025-06-18 23:47:15
63
原创 Karate UI测试自动化整合PlayWright 方式之Java
Karate UI通过Java.type()实现与Java代码的无缝集成,支持调用静态方法、实例化对象及处理复杂数据类型。该功能基于Nashorn引擎桥接JVM,能直接加载Java类(如Java.type('java.util.Date')),执行链式调用,并处理异常。典型应用包括加密解密、数据库验证和文件操作,可通过karate-config.js预加载类提升性能。注意需确保类路径正确,推荐封装复杂操作为Java工具类。结合Karate特性时,可在表格测试中验证业务逻辑,或通过Gson等库处理JSON转换
2025-06-18 06:48:21
157
原创 Karate UI自动化测试之定位器
Karate支持多种跨平台的元素定位方式,包括XPath、CSS选择器及平台专用的定位语法。主要规则为:无前缀默认为CSS选择器,"/"前缀表示XPath。不同平台(Web/Android/iOS/Win)有特定定位符,如Web的精确文本匹配"{a}"、iOS的谓词字符串":"、Android的UiAutomator"-"等。XPath用于XML/HTML文档节点定位,支持绝对/相对路径和条件筛选;CSS选择器通过元素特征(标签
2025-06-17 23:09:50
150
原创 Karate 整合PlayWright 方式之NodeJS
Karate框架与Playwright测试工具的整合可以通过多种方式实现。对于Java编写的Playwright脚本,可直接使用Java.type调用或无缝整合Driver配置;而对于NodeJS编写的脚本,则需借助karate.exec执行外部命令。示例展示了如何通过karate.exec调用Playwright的JS测试脚本,并运行Karate的Feature文件。需注意初始化NodeJS项目环境以避免"npx"命令无法执行的错误,同时确保JS文件路径正确。这种方法实现了跨语言测试工
2025-06-17 07:03:24
19
原创 Karate UI测试之驱动配置
本文介绍了Karate测试框架中WebDriver的配置方法。主要内容包括:1)如何使用默认浏览器配置,支持Mac和Windows系统;2)自定义浏览器启动方式,通过批处理文件指定执行路径;3)WebDriver的详细配置选项说明,涵盖端口、日志、超时等参数;4)远程WebDriver配置方法;5)WebDriver会话能力配置。文章还提供了配置示例代码,适用于本地和远程测试场景,帮助用户灵活设置测试环境。
2025-06-14 22:37:54
179
原创 Karate 与Playwright的比较和融合
摘要: Karate与Playwright是两种互补的测试工具。Karate擅长API测试与轻量UI自动化,采用类自然语言语法,内置Mock服务,无需处理异步逻辑,适合混合测试和非技术团队。Playwright专注现代Web自动化,支持多语言和多浏览器,提供高级功能如请求拦截和视频录制,适合复杂UI场景。两者可整合:Karate主导流程,Playwright驱动浏览器,实现API与UI串联测试。 关键差异: Karate:同步执行、语法简单、API优先 Playwright:异步模型、精准控制浏览器、生态丰
2025-06-12 23:40:09
231
原创 Karate整合PlayWright方式之playWright Driver
Karate框架结合Playwright进行自动化测试的简要方案:通过Maven项目添加karate-playwright依赖后,在配置文件中设置driver类型为playwright并可选配置浏览器参数(如headless模式、窗口尺寸等)。与直接使用本地浏览器不同,Playwright会自动下载并管理独立浏览器进程。测试时用Given driver语句启动网页,支持常规验证操作。首次运行需下载浏览器驱动,耗时较长。该方案保持了Karate的简洁语法,同时利用Playwright的跨浏览器测试能力。
2025-06-12 23:12:18
149
原创 基于Java项目的Karate UI测试
本文演示了如何在Java Maven项目中使用Karate框架进行UI自动化测试。通过一个简单测试场景说明:打开百度首页并验证页面是否包含"新闻"文本。文章详细介绍了测试规格文件(baidu.feature)的编写方法,包括配置Chrome驱动、定义测试步骤等,并展示了通过BaiduRunner测试运行器执行测试的过程。测试结果会打开浏览器执行操作,并在控制台和测试报告中显示。文末提供了完整示例代码的Git链接。该示例展示了Karate框架在UI测试中的简单应用。
2025-06-10 23:12:46
140
原创 基于Java项目的Karate API测试
本文介绍了如何在Java Maven项目中集成Karate测试框架。主要内容包括:创建Maven项目并配置karate-junit5依赖,项目目录结构的组织方式,编写Karate测试脚本(user.feature)和JUnit测试运行器(UsersRunner.java),以及环境配置(karate-config.js)。还展示了通过IDE或mvn test命令运行测试的方法,并说明测试报告会生成在target/karate-reports目录下。Karate既支持无代码的Feature文件测试,也允许Ja
2025-06-09 23:11:39
119
原创 Spring AI 之工具调用
摘要 工具调用是AI应用中增强模型能力的重要方式,分为信息检索和执行操作两大类。信息检索工具扩展模型知识库(如获取实时天气),执行工具自动化任务(如发送邮件)。Spring AI提供了便捷的API实现工具调用,安全机制确保模型只能请求调用而不能直接访问API。示例展示了通过@Tool注解定义日期查询和闹钟设置工具,模型可组合调用这些工具完成复杂任务(如10分钟后设置闹钟需先获取当前时间)。该机制有效弥补了AI模型无法获取实时信息和执行物理操作的局限。
2025-06-04 23:25:16
959
1
原创 Spring 开发疑难之methods with same signature getSchemaManager() but incompatible return types问题分析和解决
在基于Spring Boot 3.5的项目中,分离公共功能库时因引入jakarta.persistence-api 3.2.0导致与Hibernate的SchemaManager接口冲突,出现方法签名相同但返回类型不兼容的错误(IllegalArgumentException)。根本原因是Hibernate 6.x与Jakarta Persistence 3.x的API版本不匹配。
2025-06-04 22:27:35
55
原创 Spring AI 之检索增强生成(Retrieval Augmented Generation)
摘要: Spring AI通过增强器(Advisors)提供检索增强生成(RAG)支持,帮助语言模型结合外部数据提升回答准确性。QuestionAnswerAdvisor核心功能包括:从向量数据库检索相关文档,动态过滤(支持SQL表达式),以及自定义提示模板整合上下文。开发者可通过配置相似度阈值、结果数量及运行时过滤条件优化搜索,并灵活定制提示模板的占位符(query和question_answer_context)以适应不同场景。依赖spring-ai-advisors-vector-store即可快速集
2025-06-02 22:02:35
883
原创 Spring AI 之对话记忆(Chat Memory)
摘要:Spring AI为解决大型语言模型(LLMs)无状态限制,提供对话记忆功能(ChatMemory),支持在多次交互中存储上下文信息。该系统区分对话记忆(用于维持上下文)和对话历史记录(完整对话存档),并提供多种记忆类型(如基于消息窗口的MessageWindowChatMemory)和存储方案(包括内存存储InMemoryChatMemoryRepository和JDBC持久化存储JdbcChatMemoryRepository)。JDBC实现支持PostgreSQL等主流数据库,可通过方言扩展适配
2025-05-29 23:46:43
1146
原创 2.2 C++之循环结构
学习目标:示例1:输出1到10的数字运行结果:示例2:计算1到100的累加和运行结果:嵌套循环:输出乘法表运行结果:3 while 循环基本语法示例1:猜数字游戏示例2:计算水仙花数运行结果:4 do-while 循环基本语法特点:至少执行一次循环体(先执行,再判断条件)。示例:输入密码验证5 break 和 continue作用:break:立即跳出当前循环。continue:跳过本次循环剩余代码,进入下一次循环。示例:找质数(优化版
2025-05-28 22:53:47
471
原创 Spring AI 整合聊天模型之智谱AI
本文介绍了如何在Spring AI项目中集成智谱AI(ZhiPu AI)的语言模型服务,实现多语言会话助手功能。主要内容包括: 注册智谱AI平台并获取API Key; 配置Spring AI项目,通过application.properties或环境变量安全设置API Key; 添加Maven依赖启用自动配置; 详细说明了聊天属性配置,包括重试机制、连接参数和模型选项; 介绍了可配置的模型参数,如温度、top_p、最大token数等。 文章提供了完整的配置指南,帮助开发者快速集成智谱AI的GLM系列模型(如
2025-05-28 22:19:44
842
2
原创 Spring AI之快速免费使用智谱AI全过程
本文介绍了如何通过Spring AI快速集成智谱AI(ZhiPuAI)的聊天模型。首先需注册智谱AI账号获取API Token,然后创建Spring Boot项目并配置相关依赖,包括spring-ai-starter-model-zhipuai等。示例代码展示了如何通过控制器实现AI生成笑话的功能,支持普通和流式两种返回方式。最后,运行项目并测试接口效果,验证了智谱AI的集成可行性。文章还提醒注意依赖配置,避免启动错误。
2025-05-27 23:22:36
725
原创 Spring AI 之多模态
多模态大语言模型正成为AI领域新趋势。与传统单模态模型不同,新一代模型如GPT-4o、Claude3等能并行处理文本、图像、音频和视频输入。Spring AI通过消息API实现多模态支持,允许在用户消息中嵌入多种媒体资源,并提供对主流多模态模型的支持。开发者可通过简洁API实现跨模态交互,如让模型分析图片内容并生成文本描述。这种融合处理能力使AI更接近人类的多感官认知方式,为应用开发开辟了新可能。
2025-05-26 22:10:45
685
原创 Spring AI 之结构化输出转换器
Spring AI 更新了结构化输出转换器,弃用旧版Parser类,改用Converter实现类以提升功能一致性。新类如StructuredOutputConverter、BeanOutputConverter等可直接替代旧版,并支持JSON/XML等格式转换,帮助开发者将LLM文本输出快速转换为Java对象。转换过程包含提示词格式化指令和输出解析两步,但需注意模型可能无法完全遵循结构化要求。当前提供多种转换器实现,包括处理Bean、Map和List等场景的专用转换器,适用于不同下游应用的数据处理需求。
2025-05-24 22:16:13
227
原创 Spring AI 之提示词
提示词(Prompts)是引导AI模型生成特定输出的关键输入,其设计和措辞直接影响模型响应。在Spring AI中,提示词的处理方式类似于Spring MVC中的视图管理,涉及动态内容占位符的替换。Spring AI通过ChatModel和ChatClient等类与AI模型交互,类似于JDBC中的核心库和客户端。提示词的结构从简单字符串发展为包含特定输入占位符和角色分类的复杂形式。Prompt类用于存储有序的Message对象和请求选项,每个Message在提示词中扮演独特角色,如用户查询、AI响应或背景信
2025-05-22 22:29:57
190
原创 Spring AI之Advisors (增强器)
增强器应用程序编程接口(Advisors API)Spring AI Advisors API 提供了一种灵活且强大的方式,用于在 Spring 应用程序中拦截、修改和增强由人工智能驱动的交互。通过利用增强器 API,开发人员能够创建更复杂、可重用且易于维护的人工智能组件。其主要优势包括:封装重复出现的生成式人工智能模式,对发送至大型语言模型(LLMs)以及从大型语言模型接收的数据进行转换,并在不同模型和用例之间提供可移植性。建议使用构建器的方法在构建时注册增强器。
2025-05-22 22:22:35
123
原创 Spring Boot AI 之 Chat Client API 使用大全
ChatClient 提供了一套流畅的 API,支持与 AI 模型进行同步和流式交互。通过构建 Prompt,用户消息和系统消息被传递给 AI 模型,其中用户消息是直接输入,系统消息用于引导对话。Prompt 可包含占位符,运行时根据用户输入进行替换,定制 AI 响应。ChatClient 通过 ChatClient.Builder 创建,支持自动配置或编程方式构建。在需要与多个聊天模型协作的场景中,可以手动创建多个 ChatClient 实例,或为不同模型类型定义单独的 ChatClient bean,并
2025-05-21 22:33:22
1336
原创 1.4 C++之运算符与表达式
本教程旨在帮助读者掌握基本的算术运算符(+, -, *, /)和逻辑运算符(&&, ||, !),并理解表达式的优先级规则。通过实际代码示例,教程详细解释了整数与小数除法的区别,以及逻辑运算符在条件判断中的应用。此外,教程还提供了一个简单计算器程序的实现,展示了如何根据用户输入进行基本运算。最后,教程通过常见问题解答和互动挑战,鼓励读者进一步实践和扩展所学知识,如增加计算平方功能或解决逻辑谜题。通过这些内容,读者可以逐步掌握编程中的基本运算与逻辑操作。
2025-05-21 21:06:42
464
原创 Spring AI 介绍
Python因其简洁语法、丰富的AI库和框架、跨平台兼容性及活跃社区,成为AI开发的主要语言。Spring AI框架的推出为Java开发者提供了快速进入AI开发的机会。Spring AI旨在将Spring生态系统的设计原则应用于AI领域,支持主流AI模型和向量数据库,提供可移植API、结构化输出、工具调用、可观测性等功能。通过Spring Boot自动配置,开发者可以轻松集成AI模型和向量存储。快速开始指南展示了如何使用Spring AI与Azure OpenAI进行简单对话,并提供了完整项目示例代码。Sp
2025-05-20 23:25:33
594
原创 1.2 C++第一个程序
这篇文章是一个针对初学者的C++编程教程,重点介绍了如何编写并理解第一个程序“Hello World”。教程通过比喻(如将程序比作“魔法食谱”)和逐行解析代码的方式,帮助读者掌握基本概念,如cout输出、main函数的作用以及代码结构。文章还提供了动手实验和创意挑战,鼓励读者修改代码并输出自定义内容。此外,教程还解答了常见问题,并引入了变量与输出结合的扩展知识。最后,通过互动游戏“程序员的第一封信”,进一步巩固所学内容。整体内容简洁易懂,适合编程初学者入门。
2025-05-17 21:34:37
320
原创 1.1 认识编程与C++
本文介绍了编程与C++语言的基础知识,旨在帮助初学者理解编程的基本概念、C++的应用场景以及如何搭建开发环境。文章首先通过生活化的比喻解释程序、指令和数据的概念,并结合互动实验加深理解。接着,介绍了C++语言的特点及其在游戏开发、机器人控制、航天科技和动画电影等领域的广泛应用。随后,详细讲解了如何安装和配置常见的C++开发工具,如Visual Studio和Code::Blocks,并提供了简单的代码示例进行验证。最后,通过问答形式和拓展任务,鼓励读者动手实践并激发对编程的兴趣。文章通过生动的语言和清晰的步
2025-05-15 22:32:33
1165
原创 Windows Java gRPC 示例
gRPC是一个由Google开发的高性能远程过程调用(RPC)框架,广泛用于微服务通信。本文介绍了如何在Windows环境下使用Java实现gRPC的服务端和客户端调用。首先,确保环境准备完成,包括JDK 21、Maven 3.6+和VS Code。接着,创建一个Maven项目,并在pom.xml中配置gRPC相关依赖和插件。然后,定义proto文件来描述服务接口,并通过Maven命令生成Java代码。最后,分别实现服务端和客户端代码,服务端监听端口并处理请求,客户端则通过gRPC调用服务端方法。通过本文的
2025-05-13 23:29:12
107
原创 Spring Boot之MCP Client开发全介绍
标准启动器(spring-ai-starter-mcp-client)允许客户端同时通过 STDIO(进程内)和/或 SSE(远程)传输方式连接到单个或多个 MCP 服务器。WebFlux 启动器提供了与标准启动器类似的功能,但它使用的是基于 WebFlux 的 SSE(服务器发送事件,Server-Sent Events)传输实现。通过引入此依赖,可以利用 WebFlux 的响应式编程模型来处理与 MCP 服务器的 SSE 连接,从而在需要高并发和低延迟的场景下提供更好的性能。
2025-05-06 22:20:25
1366
原创 Spring Boot 之MCP Server开发全介绍
完整支持 MCP 服务器的所有功能,基于 Spring WebFlux 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。完整支持 MCP 服务器的所有功能,基于 Spring MVC 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。根据服务器类型(同步或异步),自动将提示信息规范转换为相应的同步或异步形式,简化了开发过程中的规范转换工作。
2025-05-05 08:05:13
1265
原创 SSE(Server-Sent Events)完整使用示例
本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。
2025-05-04 09:55:18
182
原创 一篇撸清 Http,SSE 与 WebSocket
特性HTTPWebSocket通信模式请求-响应(客户端主动发起)单向推送(仅服务器到客户端)全双工(客户端与服务器双向通信)协议基础基于 HTTP基于 HTTP 长连接独立协议(握手阶段依赖 HTTP)连接类型短连接(默认)或长连接(HTTP/1.1)长连接(持久性)长连接(持久性)数据格式任意格式(文本、二进制等)仅文本(UTF-8)文本和二进制延迟高(依赖轮询或长轮询)低(服务器主动推送)极低(双向即时通信)自动重连不支持支持(内置重连机制)
2025-05-04 09:54:25
544
原创 纯Java实现STDIO通信的MCP Server与客户端验证
在 MCP 协议中通过 STDIO(标准输入/输出)通信 是一种进程间通信(IPC)方式,服务器与客户端通过标准输入(stdin)和标准输出(stdout)交换数据。Spring Boot 实现MCP Server相对来说更为简单,本篇介绍在不使用Spring Boot的状况下,如何实现实现 STDIO 的MCP服务器以及调用验证。实例说明本篇和Spring Boot篇类似,实现一个简单加法的 Tool。简单起见,仅演示MCP的Tool的功能,为了更简单,该工具实现的功能只是一个简单的加法运算。
2025-05-03 19:49:14
1065
原创 基于Spring Boot实现STDIO通信的MCP Server与验证
创建一个Spring Boot项目。可以通过Spring initializer 创建,也可以在目录中直接添加一个 pom.xml 文件。这里的项目名称是mcp-spring添加依赖项</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</添加一个计算器的工具类 MyCalculateService,这个类有一个方法 add()使用@Tool 注解为一个工具。/***/@Service完成主入口类文件。
2025-05-03 18:08:05
1446
原创 MCP Java SDK 介绍与使用指南
io.modelcontextprotocol.sdk:mcp-spring-webmvc - 用于基于 servlet 的应用的基于 WebMVC 的服务器发送事件 (SSE) 传输实现。io.modelcontextprotocol.sdk:mcp-spring-webflux - 用于响应式应用的基于 WebFlux 的服务器发送事件 (SSE) 传输实现。io.modelcontextprotocol.sdk:mcp-test - MCP 应用的测试工具和支持。
2025-04-29 22:59:24
1370
Windows 最新版本的allure命令行工具
2023-11-21
Jenkins 2.414.1长期支持版本安装环境
2023-09-18
批量导入maven本地库目录到Nexus私有服务器的脚本
2023-06-28
基于JSP的Java Web项目的CSRF防御示例
2023-01-07
Webpack 快速介绍及入门示例的配套示例
2022-06-24
jenkins2.277.4 及解决插件安装相关工具包.rar
2021-05-19
OpenSSL.rar
2022-01-05
spket集合.rar
2021-06-04
Spring Cloud Config的Server 和Client示例项目
2025-03-17
Anaconda Windows安装版
2025-02-01
API 测试工具 - Karate
2025-01-02
Jenkins的HTTP Request插件1.14 版本
2024-12-03
JMeter Linux + Window
2024-10-21
Postman windows 64 安装版
2024-08-13
Spring Boot 3 极速搭建OAuth2认证框架示例项目
2024-08-13
JDepend4Eclipse 解压安装版
2024-08-10
Eclipse附带如下插件: 1. Jdepend 2. Java Dependency Viewer 直接解压就可以使用
2024-08-08
Java Dependency Viewer 的Eclipse 插件离线安装包
2024-08-07
支持 ATDD (Acceptance Test Driven Development) 的工具
2024-01-15
截取动态屏幕截图的工具
2023-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人