oscar999
毕业于中国科学技术大学,数据库四级、通过系统设计师、系统分析师、信息系统项目管理师资格认证。国际项目管理(IPMP)C级认证。超过20年软件项目开发和管理经验,精通Java Web相关技术(包括Spring系列、Ext JS等),熟悉PHP、Python、C#、Vue及AI等开发技术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自动化测试工具Katalon之BDD
BDD测试框架集成示例:Katalon Studio中使用Cucumber访问百度 本文演示了如何在Katalon Studio中集成Cucumber BDD框架进行Web测试。通过创建特性文件(Baidu.feature)定义Gherkin格式的测试场景,编写对应的Groovy步骤定义(BaiduSteps.groovy)实现浏览器操作,并配置测试监听器设置步骤定义包。示例完整展示了从打开浏览器、访问百度首页到验证页面标题的测试流程,包含特性文件编写、步骤定义实现、测试监听器配置和测试用例创建的全过程。执原创 2025-08-04 22:55:05 · 120 阅读 · 0 评论 -
无代码自动化测试工具介绍
无代码自动化测试工具摘要 无代码自动化测试工具通过可视化界面(如拖拽操作或录制回放)实现测试创建,无需编程知识。这类工具降低了技术门槛,使非技术人员也能参与测试,同时提升效率并减少维护成本。相比传统自动化工具(如Selenium)的编码复杂性和高维护需求,无代码方案具有易用性、快速测试创建、高集成性等优势。 2025年推荐的13款工具中,BrowserStack低代码自动化和Selenium IDE表现突出: BrowserStack:结合拖拽界面与可定制脚本,支持Web、移动端、API等测试,集成CI/C原创 2025-07-02 22:50:05 · 174 阅读 · 0 评论 -
自动化测试工具Katalon 之核心概念全解析
Katalon自动化测试工具核心概念解析:1)测试用例作为最小执行单位,支持图形化/脚本编写;2)测试套件用于批量管理用例执行;3)对象仓库集中管理UI元素定位;4)数据文件支持多种格式驱动测试;5)检查点提供多维度验证机制;6)关键字实现测试逻辑复用;7)监听器监控测试生命周期;8)报告系统生成详细测试结果;9)包含机制提升代码复用性;10)插件系统扩展功能边界。这些组件协同工作,构建了完整的自动化测试框架,支持从Web到移动端的全栈测试需求,通过模块化设计和数据驱动理念提高测试效率。原创 2025-06-25 22:25:47 · 164 阅读 · 0 评论 -
自动化测试工具Katalon 之快速介绍和示例
Katalon Studio是一款支持Web、API、移动端和桌面应用测试的自动化工具,整合了Selenium和Appium功能,提供图形界面和脚本编写(Groovy/Java)两种操作方式。基础功能免费,企业版收费2199美元/用户/年。安装需官网下载并登录账号使用。以百度搜索测试为例,演示了创建项目、录制脚本(含断言验证)和运行测试的完整流程。该工具适合不同技术水平的测试人员实现低代码或脚本化自动化测试。原创 2025-06-25 21:57:00 · 354 阅读 · 0 评论 -
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 · 114 阅读 · 0 评论 -
Karate UI 基本概念之一
本文介绍了UI自动化测试中driver对象的使用方法及其特性。主要内容包括: driver对象在访问网页后初始化,其方法可通过Java接口定义理解,支持将getter/setter简化为JS属性调用; driver方法可省略前缀直接使用,并推荐使用propertyName格式提高可读性; 3.支持链式调用的对象类型(Driver、Element等),可通过组合方法简化代码; 4.提供Key变量支持特殊按键操作,列举了完整的键盘按键代码常量。文中通过具体示例展示了简化写法、链式调用和特殊按键的使用方式。原创 2025-06-18 23:47:15 · 117 阅读 · 0 评论 -
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 · 225 阅读 · 0 评论 -
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 · 222 阅读 · 0 评论 -
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 · 64 阅读 · 0 评论 -
Karate UI测试之驱动配置
本文介绍了Karate测试框架中WebDriver的配置方法。主要内容包括:1)如何使用默认浏览器配置,支持Mac和Windows系统;2)自定义浏览器启动方式,通过批处理文件指定执行路径;3)WebDriver的详细配置选项说明,涵盖端口、日志、超时等参数;4)远程WebDriver配置方法;5)WebDriver会话能力配置。文章还提供了配置示例代码,适用于本地和远程测试场景,帮助用户灵活设置测试环境。原创 2025-06-14 22:37:54 · 231 阅读 · 0 评论 -
Karate 与Playwright的比较和融合
摘要: Karate与Playwright是两种互补的测试工具。Karate擅长API测试与轻量UI自动化,采用类自然语言语法,内置Mock服务,无需处理异步逻辑,适合混合测试和非技术团队。Playwright专注现代Web自动化,支持多语言和多浏览器,提供高级功能如请求拦截和视频录制,适合复杂UI场景。两者可整合:Karate主导流程,Playwright驱动浏览器,实现API与UI串联测试。 关键差异: Karate:同步执行、语法简单、API优先 Playwright:异步模型、精准控制浏览器、生态丰原创 2025-06-12 23:40:09 · 271 阅读 · 0 评论 -
Karate整合PlayWright方式之playWright Driver
Karate框架结合Playwright进行自动化测试的简要方案:通过Maven项目添加karate-playwright依赖后,在配置文件中设置driver类型为playwright并可选配置浏览器参数(如headless模式、窗口尺寸等)。与直接使用本地浏览器不同,Playwright会自动下载并管理独立浏览器进程。测试时用Given driver语句启动网页,支持常规验证操作。首次运行需下载浏览器驱动,耗时较长。该方案保持了Karate的简洁语法,同时利用Playwright的跨浏览器测试能力。原创 2025-06-12 23:12:18 · 202 阅读 · 0 评论 -
基于Java项目的Karate UI测试
本文演示了如何在Java Maven项目中使用Karate框架进行UI自动化测试。通过一个简单测试场景说明:打开百度首页并验证页面是否包含"新闻"文本。文章详细介绍了测试规格文件(baidu.feature)的编写方法,包括配置Chrome驱动、定义测试步骤等,并展示了通过BaiduRunner测试运行器执行测试的过程。测试结果会打开浏览器执行操作,并在控制台和测试报告中显示。文末提供了完整示例代码的Git链接。该示例展示了Karate框架在UI测试中的简单应用。原创 2025-06-10 23:12:46 · 179 阅读 · 0 评论 -
基于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 · 193 阅读 · 0 评论 -
Mockito如何对静态方法进行测试
在 Mockito 中,直接对进行模拟是困难的,因为 Mockito 的设计理念是优先通过依赖注入(DI)管理对象,而静态方法破坏了这种设计(难以解耦)。不过,从版本开始,通过mockStatic方法支持了对静态方法的模拟(需配合依赖)。从开始,mockito-inline 直接放入到 mockito-core 中了。发布于 2023年4月,目前Mockito的最新版本是5.17.0(2025年4月)。如何使用JUnit 进行测试,可以直接导入mockito-junit-jupiter</</</</原创 2025-04-09 22:07:44 · 783 阅读 · 0 评论 -
单元测试原则之——不要过度模拟
过度模拟(over-mocking)是指在单元测试中,模拟了太多依赖项,甚至模拟了本不需要模拟的简单对象或行为。测试代码变得复杂,难以阅读和维护。测试逻辑偏离了实际业务逻辑,无法验证真实代码的行为。忽略了被测单元与依赖项之间的真实交互。好的!我将通过一个简单的 Java 示例,对比过度模拟(Over-Mocking)和合理模拟的区别,帮助你理解为什么应该避免过度使用 Mockito 的mock。// 订单对象(简单的 POJO)// 构造方法、getter、setter 省略。原创 2025-04-09 21:25:01 · 268 阅读 · 0 评论 -
单元测试原则之——不要模拟值对象 (1)
假设我们有一个服务类 OrderService,它接收一个 Order 对象(值对象)并计算订单的总价。:模拟有行为的依赖(如服务、仓库、外部 API 客户端),而不是值对象。:值对象的逻辑简单,直接实例化即可,模拟可能掩盖潜在的错误。● 模拟数据库访问对象(如 UserRepository)。:模拟值对象需要额外的代码,增加了测试的复杂性。直接使用值对象的实际实例,避免了模拟的复杂性。● 值对象本身没有行为,直接实例化即可。:直接实例化值对象,而不是模拟它们。:值对象没有行为,直接实例化即可。原创 2025-04-02 23:12:38 · 398 阅读 · 0 评论 -
单元测试原则之——不要模拟不属于你的类型
这是因为外部库或框架的类型(如第三方依赖)可能会在未来的版本中发生变化,而你的模拟可能无法反映这些变化,从而导致测试失效。以下是一个基于Java Mockito 的示例,展示如何避免模拟不属于你的类型,以及如何使用抽象或接口来隔离外部依赖。:通过定义接口或抽象层,将外部依赖的实现细节隐藏在适配器类中,测试代码只依赖于接口。:直接模拟第三方库或框架的类型会增加测试与实现的耦合,降低测试的可维护性。● 模拟第三方类型增加了测试与实现的耦合,降低了测试的可维护性。:模拟接口或抽象层,而不是具体的第三方类型。原创 2025-04-02 22:58:00 · 246 阅读 · 0 评论 -
单元测试中的测试替身(基于Java的示例)
在单元测试中听到比较多的词就是Mock, 即模拟,也就是模拟一个虚拟的对象替代原来的对象,以便单元测试可以专注在所测试的单元。但其实单元测试中的模拟是有多种类型的,这些虚拟和模拟统称是测试替身。测试替身(Test Doubles)用于,使测试专注于目标单元的逻辑。原创 2025-03-31 22:53:41 · 454 阅读 · 0 评论 -
说清楚单元测试
单元测试是软件开发中一种重要的测试方法,其核心目的是验证代码的最小可执行单元(通常是函数、方法或类)的行为是否符合预期。这些示例展示了如何在不同编程语言中编写和运行单元测试。每个示例都测试了一个简单的加法函数。首先,确保已经安装了 Jest。Python (使用 unittest)JavaScript (使用 Jest)借由本篇,来全面看一看单元测试。Java (使用 JUnit).NET (使用 NUnit)然后,创建一个测试文件,例如。原创 2025-03-31 22:18:03 · 358 阅读 · 0 评论 -
自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。原创 2025-03-19 23:02:51 · 236 阅读 · 0 评论 -
自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。原创 2025-03-18 22:31:57 · 675 阅读 · 0 评论 -
一个不错的API测试框架——Karate
Karate 作为英文单词翻译过来的意思是:空手道,不过这里的Karate 和日本无关,和李小龙也没有关系, 而是一个API的测试框架。Karate框架遵循Cucumber风格的编程方式,这种方式遵循行为驱动开发(BDD)的方法。非编程人员也能轻松理解其语法。这个框架是唯一一个将API自动化测试和性能测试结合成一个独立工具的API测试工具。Karate是一个BDD(行为驱动开发)测试框架,而不是TDD(测试驱动开发)。它被设计为对非程序员友好。原创 2025-02-24 22:40:07 · 496 阅读 · 0 评论 -
[API测试] Karate 之独立运行方式
在这一篇中介绍了如何在Maven项目中,如何结合JUnit 运行 Karate的API测试, 如果是专职的QA人员来测试, 对Java语言或者Maven完全不熟悉的话要怎么来运行Karate的测试呢?答案就是使用Karate的独立运行方式。原创 2025-01-02 22:33:42 · 242 阅读 · 0 评论 -
Python BDD 框架比较之 pytest-bdd vs behave
这两个框架都有其优点和特性,选择哪一个主要取决于特定需求。如果你已经在使用pytest,并且希望以最少的学习曲线使用 BDD,那么pytest-bdd可能是更好的选择。另一方面,如果你希望编写的测试代码更接近自然语言,并且适合非技术团队成员阅读和修改,那么behave可能是更好的选择。原创 2023-11-24 07:11:08 · 1732 阅读 · 0 评论 -
在VS Code中进行Java的单元测试
在VS Code中可以使用 Test Runner for Java扩展进行Java的测试执行和调试。原创 2024-05-28 22:38:08 · 4382 阅读 · 2 评论 -
JMeter实战之——模拟登录
本篇介绍使用JMeter 如何对需要登录的站点进行压力测试。原创 2024-10-23 22:34:42 · 2480 阅读 · 0 评论 -
Java 中使用Mockito 模拟对象的单元测试的快速示例
Mockito是一个流行的Java模拟框架,它允许你在单元测试中创建和配置模拟对象,以便在测试过程中替换那些不容易构造或获取的对象。Mockito可以与JUnit无缝集成,下面的示例演示 Mockito + JUnit实现模拟对象的单元测试。原创 2024-11-10 20:13:02 · 898 阅读 · 0 评论 -
Java 单元测试模拟框架-Mockito 的介绍
Mockito 允许开发人员创建和管理模拟对象(mock objects),以便在测试过程中替换那些不容易构造或获取的对象。Mockito 是一个用于单元测试的模拟框架,基于它可以使用简洁易用的API编写出色的测试。Mockito当前的最新版本是 5.14.2,在pom.xml中导入之后就可以开始使用了。创建Mock对象, 验证对象的方法是否被调用了。Mockito的使用步骤。模拟方法执行返回的结果。原创 2024-12-01 20:51:46 · 2235 阅读 · 0 评论 -
Karate 介绍与快速示例(API测试自动化、模拟、性能测试与UI自动化工具)
Karate是一个将API测试自动化、模拟、性能测试甚至UI自动化结合到一个统一框架中的开源工具。Karate 是用Java语言编写, 可以在Java 项目项目中运行API的测试,对于不熟悉Java的团队,Karate提供了一个跨平台的独立可执行文件。不必编译代码。只需以简单易读的语法编写测试——为HTTP、JSON、GraphQL和XML精心设计。可以在同一测试脚本中混合使用API和UI测试自动化。原创 2025-01-01 22:12:19 · 1025 阅读 · 0 评论