- 博客(150)
- 收藏
- 关注
原创 Playwright + JS 进行页面跳转测试
本文介绍了使用Playwright进行页面跳转测试的两种主要场景:1.基本页面跳转测试:在当前页面内进行跳转验证,通过click()触发跳转并使用toHaveURL()验证目标URL。2.新标签页跳转测试:通过监听page事件处理新标签页跳转,使用waitForEvent()捕获新页面实例并进行验证。文章还提供了配置建议,包括设置导航超时时间和等待条件,并总结了关键测试要点:确保跳转完成、正确处理异步操作、使用数据属性选择器提升测试稳定性等。这些方法能有效验证网页导航功能。
2026-01-21 15:27:34
193
原创 python + selenium 如何定位动态元素
摘要: 本文针对动态元素定位问题提供解决方案。首先检查定位失败原因(如等待时间不足、iframe嵌套等),然后给出三种方法:1. 使用显式等待确保元素加载;2. 通过相对路径(父子/兄弟节点)定位动态元素;3. 终极方案是使用JavaScript直接操作DOM。建议优化测试用例设计,减少对动态元素的依赖,必要时可协调开发添加稳定测试属性(如data-testid)以提高定位可靠性。
2026-01-20 17:13:57
407
原创 python+appuim实现APP自动化教程
本教程详细介绍了使用Python+Appium实现APP自动化的完整流程。主要内容包括:环境搭建(Python、Appium、Android/iOS工具安装)、基础脚本编写、核心概念(DesiredCapabilities配置、8种元素定位方法)、常用操作(点击、输入、滑动等)、高级功能(页面滑动、源码获取、截图)以及实用工具类实现。教程还提供了测试框架集成示例(Pytest)、微信发消息实战案例和常见问题解决方案。通过本教程,学习者可以系统掌握Appium自动化测试技术,从基础到进阶构建完整的自动化测试能
2026-01-15 17:52:25
354
原创 Jenkins配置GitHub token教程
→ Token scope 不够 / Token 填错。⚠️ 不是仓库 Settings,是。关掉页面就再也看不到了,只能删了重建。Console Output 会看到。→ URL 错 / 私有仓库没权限。在 Settings 页面左侧。Workspace 里能看到代码。← ✅ 我们用这个(最稳)我可以直接帮你定位。
2025-12-27 19:17:25
904
原创 js-运算符 ||
本文介绍了JavaScript中逻辑或(||)运算符的基本语法和作用。||通过短路特性实现默认值设置:从左到右计算,返回第一个真值,否则返回最后一个值。文章详细说明了||在环境变量、函数参数、对象属性访问等场景的应用,并与空值合并运算符(??)进行了对比,指出||会处理所有假值而??仅处理null/undefined。特别强调了||处理数字0、空字符串等有效值时的问题,建议在这些场景使用??或显式检查。最后总结了||的核心用途是提供默认值,但需要注意有效值覆盖问题,复杂逻辑建议使用显式条件判断。
2025-12-25 23:52:16
363
原创 js-箭头函数
本文介绍了ES6箭头函数的基本语法和实用模式,重点解析了示例代码export const bundleType = () => process.env.BUNDLE || 'dev'。该代码通过箭头函数简洁地实现了环境变量获取功能:当process.env.BUNDLE存在时返回其值,否则返回默认值'dev'。文章还展示了箭头函数的简化形式、特点(简洁语法、隐式返回、无this绑定)以及类似的配置获取模式,包括条件函数和链式配置。最后给出了实际应用场景,如在构建工具中根据环境变量动态配置Webpack
2025-12-25 23:40:13
339
原创 js-三元运算符
Node.js中使用三元运算符处理跨平台命令差异,通过process.platform检测操作系统,Windows平台使用electron.cmd而其他系统使用electron命令。这种模式常见于CLI工具和构建脚本,确保不同系统兼容性。典型应用包括执行命令、路径处理和二进制文件选择,现代替代方案可使用cross-spawn等工具库简化跨平台开发。该技巧是处理Windows与Unix-like系统差异的基础方法。
2025-12-25 23:28:33
288
原创 Jenkins 安装教程
本文提供Jenkins安装全流程指南,涵盖Windows/Linux/Docker三种主流方式。重点包括:Java环境配置(推荐JDK17)、Windows下MSI安装包使用、Linux包管理器安装、Docker容器化部署。特别强调安装后的5个关键配置:常用插件安装、JDK/Node环境设置、Git凭证管理、Pipeline任务创建及端口修改。针对常见问题(如端口冲突、启动失败、环境依赖)给出解决方案,并推荐测试/CI场景使用Docker+Pipeline组合,确保环境一致性。全文突出实践性,帮助开发者快速
2025-12-25 13:58:50
844
原创 桌面应用程序测试思路
文章摘要:针对Web官网和桌面应用的功能测试设计,本文提出系统化的测试策略。官网测试重点关注信息准确性、链接有效性、下载流程及表单功能,同时涵盖UI/UX、跨浏览器兼容性和基础安全测试。桌面应用测试强调安装/卸载流程、API核心功能(CRUD操作、环境变量、Mock服务)、系统兼容性和性能指标(启动速度、资源占用)。测试需根据不同平台特性(Windows/macOS/Linux)进行适配,建议根据实际需求选择性侧重不同测试方向。全文提供了从功能到安全的完整测试框架参考。
2025-12-19 17:03:22
673
原创 python基础算法-str
本文总结了高频字符串算法题的分类及考察要点,主要分为三类:基础必考题(如字符串反转、回文判断)、常见应用题(如子串查找、数字转换)和逻辑思维题(如有效括号判断)。文章强调测试工程师需关注边界条件、代码质量和测试思维,并提供了Python示例代码。面试技巧包括澄清需求、举例说明、先写测试用例和代码自测,以展现全面的编程和测试能力。
2025-11-26 17:31:36
294
原创 Jenkinsfile保存在项目根目录下的好处
Jenkins最佳实践推荐将流水线脚本定义为Jenkinsfile并保存在项目根目录下,实现"Pipeline as Code"。相比Web界面定义方式,Jenkinsfile具有显著优势:支持版本控制、提高代码复用性、便于团队协作审查、确保一致性、增强故障恢复能力以及提供更好的开发体验。虽然Web界面定义仍适用于快速原型测试或简单任务,但对于正式项目,Jenkinsfile是更可靠的选择。它实现了基础设施即代码理念,使构建流程与应用程序代码同步管理,真正实现持续交付。实践时只需在Jen
2025-11-23 15:49:11
888
原创 测试金字塔模型
测试金字塔模型是自动化测试的核心框架,将测试分为三层:底层的单元测试(70%,快速验证代码单元)、中层的集成测试(20%,测试模块交互)和顶层的端到端测试(10%,模拟用户流程)。该模型强调测试效率与成本平衡,提倡"广筑塔基"策略,即多投入低成本的单元测试,减少高维护的端到端测试。常见反模式包括过度依赖手动测试的"冰激凌模型"和本末倒置的"倒金字塔"。在CI/CD实践中,应按测试层级分阶段执行,单元测试作为快速反馈的第一关卡。该模型的本质是以最小成
2025-11-23 15:47:23
596
原创 Playwright定位方式
摘要:本文介绍了Playwright测试框架中的9种元素定位策略,按推荐优先级排序:1)getByTestId(最稳定);2)getByRole(语义化);3)getByLabel/getByPlaceholder(用户视角);4)CSS选择器;5)XPath(不推荐)。最佳实践推荐使用专用测试ID和语义化角色定位,避免依赖样式和XPath。文中提供了各类定位方式的代码示例,并展示了如何在页面对象模式中应用这些策略,以构建稳定且易维护的测试代码。
2025-11-21 17:50:20
739
原创 Playwright ( js + npm ) 项目准备工作
本文介绍了Playwright测试工具的使用方法。主要内容包括:1)推荐VSCode的PlaywrightTest插件,支持一键运行测试脚本;2)初始化Playwright项目的npm命令及版本查询方法;3)两种运行测试模式:默认终端日志模式和带UI的调试模式;4)生成和查看测试报告的命令。文章提供了从环境搭建到测试执行的全流程指南,特别强调了UI模式对调试的帮助。
2025-11-18 14:44:29
415
原创 selenuim知识点总结
本文系统总结了Python+Selenium自动化测试的核心技术要点,包括:1)环境搭建与浏览器配置;2)八大元素定位方法与基本操作;3)三种等待机制(重点推荐显式等待);4)高级交互(鼠标/键盘操作、下拉框处理等);5)POM设计模式实现;6)实用技巧(失败截图、JS执行等);7)常见问题解决方案;8)完整测试案例。内容涵盖从基础到进阶的关键知识点,特别强调等待机制的正确使用和POM模式的实践应用,为构建稳定可靠的自动化测试框架提供了系统指导。建议按照基础→进阶→高级三个阶段循序渐进地学习实践。
2025-10-28 16:42:52
1077
原创 Python - 装饰器
Python装饰器是一种强大的语法特性,允许在不修改原函数代码的情况下动态扩展函数行为。装饰器本质上是高阶函数,接收函数作为参数并返回新函数。文章介绍了基础装饰器、带参数装饰器、类装饰器的实现方式,以及@staticmethod、@classmethod、@property等内置装饰器的用法。此外还展示了装饰器在测试中的应用(如数据驱动测试和Mock测试),并解释了装饰器的执行顺序。掌握装饰器可以使代码更简洁灵活,适用于日志记录、性能测试、权限控制等多种场景。
2025-10-17 17:42:44
1104
原创 POM思想的理解与示例
POM(页面对象模型)是自动化测试的核心设计模式,通过封装页面元素和操作逻辑实现脚本优化。该模式将每个页面抽象为独立类,测试脚本只需调用方法(如login())而非直接操作元素,提升代码可维护性和复用性。典型实现包含基础页面类(封装通用操作)、具体页面类(定义元素定位器)和测试用例三层结构,支持链式调用和页面跳转返回。POM优势包括:元素变更只需修改Page类、业务逻辑可读性强、便于团队协作,使测试代码更健壮且易于应对需求变更。
2025-10-16 18:00:39
965
原创 一篇文章弄懂自动化脚本中的共享代码和共享状态
在软件测试中,和是两个重要概念,它们帮助测试执行得更加高效和组织化,尤其在使用像pytest这样具有fixture机制的框架时。
2025-10-16 16:43:10
374
原创 python自动化中(包括UI自动化和API自动化)env的作用和使用
Python自动化测试中环境变量的核心作用包括配置管理、敏感信息保护和环境切换。常用工具如python-dotenv和os.environ,通过.env文件存储API密钥、数据库配置等参数。在UI自动化中可管理浏览器配置,在API测试中实现多环境切换。最佳实践包括环境验证、类型转换和安全加密,配合.gitignore保护敏感数据,使测试框架更安全灵活。
2025-10-14 20:17:51
435
原创 JS - npm init
本文对比了Node.js和Python的项目初始化及依赖管理方式。Node.js通过npm init -y自动生成package.json文件,记录项目元数据和依赖(类似Python的requirements.txt),而Python项目通常使用requirements.txt或setup.py。文中详细说明package.json的自动更新机制,包括添加/移除依赖时如何修改该文件。最后介绍了如何通过npm install或yarn安装依赖,并解释了package-lock.json/yarn.lock文件
2025-10-13 17:42:13
444
原创 JS - 运算符
掌握这些运算符是JavaScript编程的基础。特别要注意:比较运算符:优先使用===和!==逻辑运算符:理解短路求值的特性现代运算符:掌握??和?的使用场景优先级:不确定时使用括号明确意图。
2025-10-13 16:55:25
348
原创 ES6是什么
ES6是JavaScript语言的一次革命性升级,于2015年发布。它引入了let/const、箭头函数、模板字符串、解构赋值、Promise、模块化等核心特性,解决了传统JavaScript的诸多痛点,使代码更简洁易读。这些新特性为现代前端开发奠定了基础,让JavaScript能够高效开发复杂应用。ES6之后,JavaScript开始每年发布新版本,但ES6仍是现代JavaScript开发的基石。
2025-10-13 16:51:43
439
原创 JS-变量声明
JavaScript变量声明深度解析:从var到let/const的演进 摘要:本文系统梳理JavaScript变量声明核心知识,重点对比var、let、const三者的差异。var存在函数作用域和变量提升特性,而let/const采用块级作用域和暂时性死区机制,避免变量污染。最佳实践推荐优先使用const,需要重新赋值时用let,逐步淘汰var。文中详解作用域差异、TDZ现象、循环变量陷阱等高频考点,并给出模块化开发中的使用建议。掌握这些知识点可编写更安全可靠的代码,也是面试考察的重点内容。
2025-10-13 16:45:18
397
原创 JS - 数据类型
JavaScript数据类型分为原始类型和对象类型。原始类型(按值访问)包括String、Number、Boolean、Undefined、Null、Symbol和BigInt;对象类型(按引用访问)包含Object、Array、Function等。原始类型不可变,赋值时复制值;对象类型可变,赋值时复制引用。类型检测可用typeof(原始类型)和instanceof(对象类型)。关键区别在于存储方式:原始类型直接存储值,对象类型存储引用。理解这些类型对变量赋值、函数传参和内存管理至关重要。
2025-10-13 16:25:42
1140
原创 Cucumber + Playwright 教程
的组合非常适合需要团队协作、需求频繁变更、对软件质量要求高的项目。它确保了所有人对需求的理解一致,并通过自动化测试保证了最终产品的质量。
2025-10-09 23:27:36
381
原创 2023自动化测试岗位面试题分享(部分给出答案,持续更新中。。。)
4. 登陆接口,创建订单的接口,登录接口会返回一个object的数据,里面有一个字段是token,需要放到创建订单的接口中去使用,创建订单的接口还需要有两个字段,一个是订单号,一个是订单时间,订单号需要随机生成一个十位数字,时间需要生成当前时间。在 Python 中,元组是可以作为字典的键的,前提是元组中的元素必须是不可变的。生成器可以理解为是一种特殊的迭代器。线程是进程的一部分,是由cpu进行资源分配和调度的基本单位,多个线程共享一个进程的所有资源,缺点是如果一个线程崩溃都会造成进程的崩溃。
2025-10-09 17:38:31
961
原创 TypeScript 对比 JavaScript
摘要:文章比较了TypeScript(TS)和JavaScript(JS)的核心区别。TS采用静态类型系统,在编译时检查类型错误,支持变量类型注解、自定义类型和对象结构检查,提供更好的代码提示和可读性;JS作为动态类型系统,只会在运行时发现错误。TS的优势包括:更早发现错误、更好的团队协作和代码健壮性,而JS则更灵活。作者目前主要学习JS和Python用于自动化脚本开发。
2025-10-07 21:49:14
469
原创 JSDoc注释
摘要:在VSCode中可通过/**+Tab快速生成JSDoc注释模板,或用Ctrl+Alt+D快捷键。JSDoc包含@param、@returns等标签说明参数和返回值,示例展示如何为类方法添加完整注释。安装DocumentThis等扩展可增强支持,编写JSDoc能提升代码可读性和团队协作效率,建议养成注释习惯。
2025-10-07 20:59:31
364
原创 JS 解决 warning “Module type of ... is not specified and it doesn‘t parse as CommonJS.”
Node.js检测到ES模块语法但未在package.json中指定模块类型,导致性能警告。解决方案是在项目根目录的package.json中添加"type": "module"来明确使用ES模块系统,消除警告。这能确保Node.js正确解析import/export语法。替代方案是将文件扩展名改为.mjs。该设置帮助Node.js区分CommonJS和ES模块系统。
2025-10-04 23:40:30
655
原创 JS-模块化
导出:在源文件中使用export。导入:在目标文件中使用import。记住:命名导出需要用{},默认导出不需要。
2025-10-04 20:56:05
438
原创 JS + Playwright 所需的依赖安装以及set up
本文提供了详细的JS+Playwright环境配置教程。主要内容包括:1)安装Node.js和npm;2)配置VSCode编辑器;3)通过官方初始化命令安装Playwright(推荐)或手动安装;4)验证安装并运行测试。文中给出了完整的安装步骤、项目结构说明、常用命令速查表以及网络问题解决方案。教程适用于Windows、macOS和Linux系统,帮助用户快速搭建Playwright测试环境,并建议从示例测试或代码录制功能开始学习。
2025-09-30 16:58:01
1072
原创 自学 JS + Playwright 指南
《Playwright自学指南:四阶段高效掌握现代Web自动化测试》 本文提供了一份清晰的JS+Playwright自学路径,分为四个阶段:1.基础阶段(1-2周)重点掌握现代JS语法和异步编程;2.核心概念阶段(1-2周)学习Playwright的Browser/Context/Page模型及元素定位;3.实战阶段通过真实项目练习测试框架搭建与调试;4.进阶阶段掌握高级特性与CI/CD集成。指南强调实践优先,推荐官方文档为核心学习资源,建议通过模仿示例代码和持续动手实践来掌握这一现代化测试工具。
2025-09-30 16:10:49
977
原创 基于BDD思想的测试框架技术栈总结
摘要:BDD测试工具综述:文章介绍了主流BDD实现工具链,覆盖Web和API测试场景。Web自动化方面,Java推荐Cucumber-JVM+SerenityBDD,JS/TS推荐Cucumber.js+Playwright,Python推荐behave/pytest-bdd,.NET推荐SpecFlow。API测试则建议在上述框架基础上结合RestAssured等HTTP库。特别强调了不同技术栈的选择考量,如企业级支持、开发者体验和报告生成能力。
2025-09-25 11:26:36
515
原创 理解TDD&BDD思想
TDD与BDD的核心区别在于关注点:TDD(测试驱动开发)聚焦代码正确性,通过"红-绿-重构"循环确保技术实现;BDD(行为驱动开发)关注业务价值,采用"讨论-形式化-自动化"流程验证功能是否符合需求。TDD由开发者编写单元测试,使用编程语言;BDD由多角色协作,用自然语言描述用户场景。二者互补:BDD定义"做什么"(系统行为),TDD实现"怎么做"(代码细节)。完整开发流程通常先通过BDD确定需求,再用TDD实现具体功能,最终
2025-09-24 17:03:05
625
原创 Cucumber + Pytest(python)实现自动化(BDD)
摘要: 本文介绍了如何将BDD(行为驱动开发)与pytest+Python结合实现自动化测试。通过pytest-bdd插件,开发者可以使用Gherkin语法编写业务可读的测试用例,同时利用pytest的fixture、参数化等功能。文章详细说明了项目目录结构、Gherkin特性文件编写、步骤定义实现、PageObject模式应用以及测试运行与报告生成方法。这种组合兼具业务可读性和技术灵活性,支持丰富的测试报告和CI/CD集成,是现代化自动化测试的高效实践方案。(150字)
2025-09-24 16:55:01
1020
原创 敏捷(Agile)流程
敏捷开发是一种以人为核心、迭代渐进的方法论,强调快速交付可运行软件并持续优化。其核心价值包括:个体互动高于流程工具、可工作软件重于详尽文档、客户合作优于合同谈判、响应变化高于遵循计划。通过Scrum框架(包含三大角色、五大仪式和三大工件)实现短周期迭代开发,每个周期产出可交付的产品增量。敏捷精髓在于拥抱变化、小步快跑和建立信任协作,通过持续反馈调整确保产品始终符合用户需求。
2025-09-24 16:48:53
792
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅