- 博客(16)
- 收藏
- 关注
原创 作为测试开发工程师:如何对 Agent(Workflow 类)做一套“能上线”的测评体系
每类任务明确成功条件与失败条件明确动作边界与权限规则workflow agent 今天像聪明助理,明天可能像会乱按按钮的小朋友——而且按钮还连着生产数据库。测评要从“回答质量”升级为“验收 + 故障演练 + 回归门禁 + 线上监控”,才真的能上线、能长期跑。
2026-01-04 17:25:11
622
原创 在 Selenium 中用好 XPath:一篇面向实战的详尽博客
✅ 优先用 ID / data-test / CSS;只在必要时用 XPath。✅ 避免绝对路径/html/...;使用相对//或基于父节点的相对定位(.//✅ 想取第 n 个元素,别忘了括号(//...)[n]。✅ 匹配类名用。✅ 文本匹配优先用而不是text()(更稳)。✅ 元素在 iframe 或 shadow DOM 中需先切换或用特殊方法;XPath无法穿破 shadow DOM。✅ 调试用$x();请勿直接相信 DevTools 生成的绝对 XPath。
2025-09-26 21:32:11
960
原创 CSS 选择器在 Web 自动化中的不同选择方式
ID / data-test 属性→ 稳定可靠 ✅Class / 属性选择器→ 灵活常用 🛠️层级 / 伪类选择器→ 谨慎使用 ⚠️Level 4 新语法→ 现代项目利器 🚀写选择器就像打磨武器,越锋利,自动化测试越有战斗力。
2025-09-26 21:15:13
1032
原创 软件测试用例设计方法详解:五大核心方法与案例实践
测试用例(Test Case)是指为了验证某个特定功能是否按预期工作而编写的一组输入、操作、预期结果和执行条件的集合。等价类划分是将输入数据按照“等效”的方式分成若干组,每组代表一类“相似”的输入数据,这些数据对程序来说效果等价。有效等价类:输入合法,应正常处理。无效等价类(非等价类):输入非法,应给出错误提示或拒绝处理。✅ 目标:减少冗余测试,提高覆盖率。边界值分析法是关注变量的边界点,因为程序最容易在边界上出错。最小边界值 -1、=、+1最大边界值 -1、=、+1判定表法适用于。
2025-07-12 18:21:08
599
原创 编程式事务 vs 声明式事务:Spring Boot 全面解析与实战
编程式事务是指你通过代码手动控制事务的开启、提交、回滚等操作。Spring 提供和来实现这一控制。声明式事务是通过注解或 XML 配置来声明事务边界,不需要手动写事务控制逻辑。Spring AOP 会自动拦截方法,包裹事务逻辑。事务是保障企业级应用可靠性的底层机制之一。编程式事务适合复杂和动态场景,声明式事务适合大多数业务逻辑清晰的服务方法。在实际项目中,应根据业务复杂度、维护成本、团队风格选择合适方式,并遵循“能声明式就不要编程式”的原则,但在必要时不要惧怕使用编程式事务。
2025-06-04 08:18:50
697
原创 深入理解Java中的强、软、弱、虚引用
在Java内存管理中,引用类型直接决定了对象的生命周期。除了最常见的强引用,Java还提供了软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)三种特殊引用类型。本文将结合代码示例,深入解析这四种引用的特性和使用场景。
2025-05-26 18:08:04
1445
原创 使用 RestAssured 实现 Java 自动化接口测试(含登录认证、JSON 实体、响应断言)
是一款用于编写RESTful API 测试的 Java DSL 工具,它简单直观,能快速完成请求发送与断言,常用于后端接口测试、回归验证和 CI 自动化测试。与 JUnit、TestNG 等无缝集成支持 GET、POST、PUT、DELETE 等所有 HTTP 方法内建 JSON/XML 序列化、反序列化断言语法直观清晰(支持 Hamcrest)通过本文你已经掌握了使用 RestAssured 实现登录认证、POST JSON 实体、提取响应、断言结果等核心能力。
2025-05-25 20:52:00
981
原创 Java内存溢出(OOM)全解析:场景、原因与实战解决方案
OOM问题本质是资源管理问题。通过理解内存模型、合理监控与调优,结合代码层面的谨慎实践,可显著降低其发生概率。记住,预防胜于治疗,良好的编程习惯与定期的性能分析是避免OOM的最佳武器。
2025-05-22 15:40:16
1508
原创 基于前缀树(Trie)的敏感词过滤器实现详解
前缀树(Trie)是一种树形结构,主要用于快速查找和匹配字符串集合。其本质上是一个多叉树,每个节点代表一个字符,路径从根节点到某个节点的字符拼接起来,组成了一个单词或前缀。查询速度快:相比暴力匹配更高效,适用于敏感词过滤这种需要频繁查询的场景。内存可控:适合大量词汇管理。...:是否是一个关键词的结尾;subNodes:当前节点的子节点(映射关系为“字符 -> 子节点”)。这里使用HashMap构建父节点和子节点关系,实现O(1)的查询速度。
2025-05-22 15:02:55
1235
1
原创 Spring Boot 中 CompletableFuture 的用法与作用详解(超详细)
是包下的一个类,是 Java 对Future的扩展和增强,实现了异步、非阻塞、可组合的特性。支持非阻塞异步处理(不阻塞主线程)支持多个异步任务的组合(串行/并行)支持函数式链式调用,代码更简洁支持异常处理机制(类似 try-catch)与 Spring Boot 高度兼容是 Java 8 带来的强大异步编程工具,在 Spring Boot 中配合线程池使用可以极大提升服务性能、代码结构清晰度和系统响应速度。掌握,你就掌握了异步处理、并发控制和高性能编排的核心武器。
2025-05-22 14:35:00
1125
原创 Spring Boot责任链模式实战:避免只执行一条处理器的坑
API变化敏感度Java集合API的更新需要特别关注不可变性变化(如Java 9的List.ofvs Java 16的防御性编程对于框架自动注入的组件,要预设并发访问场景Spring生命周期合理利用CommandLineRunner、@PostConstruct等生命周期钩子代码审查重点集合操作、并发安全、API兼容性应作为代码审查的重点关注项经验法则:当遇到集合操作异常时,首先检查集合的可变性,其次确认线程安全设计。
2025-04-05 10:25:38
999
原创 Spring中的SpEL
Spring Expression Language (SpEL) 是 Spring 框架中的一种强大的表达式语言,用于在运行时查询和操作对象图。它支持设置和获取属性值、调用方法、访问数组、集合以及进行各种类型的运算。SpEL 通常被用来简化配置文件中的值设定,也可以在程序代码中使用以实现更灵活的逻辑处理。提醒:spel表达式中的关键字是不区分大小写的。
2025-03-28 22:27:36
250
原创 redis缓存三大问题
存在误判:由于布隆过滤器是判断位数组中k个位置的值是否为1,而当布隆过滤器中数量增多的时候,难免会出现假设元素 x 没有存储过,但其他元素的哈希函数映射到位数组的三个位刚好都为 1 且恰好覆盖了元素 x 映射的位置,那么对于布隆过滤器来讲,元素 x 这个值就是存在的这样的情况,从而出现误判。布隆过滤器是一个m长的位数组,当我们传递进去一个字符串的时候,它会通过k个哈希函数计算出数组k个位置,从而让它们的值变成1,当我们以后在判断的时候,只需要判断这些地方的0是否变为1即可。// 查询元素是否可能存在。
2025-03-28 22:22:42
350
原创 Java集合源码——ArrayList
相当于底层会初始化数组#为什么要学习源码,最近在学一个开源项目的时候,深刻的体会到了鼠鼠基础的薄弱,所以特地来补充集合源码的内容,加以学习~
2024-11-29 19:42:24
412
原创 Java面向对象三大特征——封装性
包在Java中起到了组织代码、避免命名冲突和控制访问权限的作用。在大型项目中包的作用会越来越显现它的重要性。三、封装性的具体体现了解了以上的内容,我们就该学习在实际的程序中,封装性的提醒和使用方法了。在一个类中我们定义了三种属性分别为age,name,weight,它们的权限修饰符分为别private,public和默认。从上图可以显而易见,在新建的另一个类test中,被private修饰的age就已经不可被访问。那么我们该如何对Person类当中的内容进行访问呢?这就要使用到get和set方法了。
2024-06-12 16:09:15
739
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅