- 博客(142)
- 收藏
- 关注
原创 桌面应用程序测试思路
文章摘要:针对Web官网和桌面应用的功能测试设计,本文提出系统化的测试策略。官网测试重点关注信息准确性、链接有效性、下载流程及表单功能,同时涵盖UI/UX、跨浏览器兼容性和基础安全测试。桌面应用测试强调安装/卸载流程、API核心功能(CRUD操作、环境变量、Mock服务)、系统兼容性和性能指标(启动速度、资源占用)。测试需根据不同平台特性(Windows/macOS/Linux)进行适配,建议根据实际需求选择性侧重不同测试方向。全文提供了从功能到安全的完整测试框架参考。
2025-12-19 17:03:22
630
原创 python基础算法-str
本文总结了高频字符串算法题的分类及考察要点,主要分为三类:基础必考题(如字符串反转、回文判断)、常见应用题(如子串查找、数字转换)和逻辑思维题(如有效括号判断)。文章强调测试工程师需关注边界条件、代码质量和测试思维,并提供了Python示例代码。面试技巧包括澄清需求、举例说明、先写测试用例和代码自测,以展现全面的编程和测试能力。
2025-11-26 17:31:36
286
原创 Jenkinsfile保存在项目根目录下的好处
Jenkins最佳实践推荐将流水线脚本定义为Jenkinsfile并保存在项目根目录下,实现"Pipeline as Code"。相比Web界面定义方式,Jenkinsfile具有显著优势:支持版本控制、提高代码复用性、便于团队协作审查、确保一致性、增强故障恢复能力以及提供更好的开发体验。虽然Web界面定义仍适用于快速原型测试或简单任务,但对于正式项目,Jenkinsfile是更可靠的选择。它实现了基础设施即代码理念,使构建流程与应用程序代码同步管理,真正实现持续交付。实践时只需在Jen
2025-11-23 15:49:11
853
原创 测试金字塔模型
测试金字塔模型是自动化测试的核心框架,将测试分为三层:底层的单元测试(70%,快速验证代码单元)、中层的集成测试(20%,测试模块交互)和顶层的端到端测试(10%,模拟用户流程)。该模型强调测试效率与成本平衡,提倡"广筑塔基"策略,即多投入低成本的单元测试,减少高维护的端到端测试。常见反模式包括过度依赖手动测试的"冰激凌模型"和本末倒置的"倒金字塔"。在CI/CD实践中,应按测试层级分阶段执行,单元测试作为快速反馈的第一关卡。该模型的本质是以最小成
2025-11-23 15:47:23
565
原创 Playwright定位方式
摘要:本文介绍了Playwright测试框架中的9种元素定位策略,按推荐优先级排序:1)getByTestId(最稳定);2)getByRole(语义化);3)getByLabel/getByPlaceholder(用户视角);4)CSS选择器;5)XPath(不推荐)。最佳实践推荐使用专用测试ID和语义化角色定位,避免依赖样式和XPath。文中提供了各类定位方式的代码示例,并展示了如何在页面对象模式中应用这些策略,以构建稳定且易维护的测试代码。
2025-11-21 17:50:20
712
原创 Playwright ( js + npm ) 项目准备工作
本文介绍了Playwright测试工具的使用方法。主要内容包括:1)推荐VSCode的PlaywrightTest插件,支持一键运行测试脚本;2)初始化Playwright项目的npm命令及版本查询方法;3)两种运行测试模式:默认终端日志模式和带UI的调试模式;4)生成和查看测试报告的命令。文章提供了从环境搭建到测试执行的全流程指南,特别强调了UI模式对调试的帮助。
2025-11-18 14:44:29
382
原创 selenuim知识点总结
本文系统总结了Python+Selenium自动化测试的核心技术要点,包括:1)环境搭建与浏览器配置;2)八大元素定位方法与基本操作;3)三种等待机制(重点推荐显式等待);4)高级交互(鼠标/键盘操作、下拉框处理等);5)POM设计模式实现;6)实用技巧(失败截图、JS执行等);7)常见问题解决方案;8)完整测试案例。内容涵盖从基础到进阶的关键知识点,特别强调等待机制的正确使用和POM模式的实践应用,为构建稳定可靠的自动化测试框架提供了系统指导。建议按照基础→进阶→高级三个阶段循序渐进地学习实践。
2025-10-28 16:42:52
1061
原创 Python - 装饰器
Python装饰器是一种强大的语法特性,允许在不修改原函数代码的情况下动态扩展函数行为。装饰器本质上是高阶函数,接收函数作为参数并返回新函数。文章介绍了基础装饰器、带参数装饰器、类装饰器的实现方式,以及@staticmethod、@classmethod、@property等内置装饰器的用法。此外还展示了装饰器在测试中的应用(如数据驱动测试和Mock测试),并解释了装饰器的执行顺序。掌握装饰器可以使代码更简洁灵活,适用于日志记录、性能测试、权限控制等多种场景。
2025-10-17 17:42:44
988
原创 POM思想的理解与示例
POM(页面对象模型)是自动化测试的核心设计模式,通过封装页面元素和操作逻辑实现脚本优化。该模式将每个页面抽象为独立类,测试脚本只需调用方法(如login())而非直接操作元素,提升代码可维护性和复用性。典型实现包含基础页面类(封装通用操作)、具体页面类(定义元素定位器)和测试用例三层结构,支持链式调用和页面跳转返回。POM优势包括:元素变更只需修改Page类、业务逻辑可读性强、便于团队协作,使测试代码更健壮且易于应对需求变更。
2025-10-16 18:00:39
824
原创 一篇文章弄懂自动化脚本中的共享代码和共享状态
在软件测试中,和是两个重要概念,它们帮助测试执行得更加高效和组织化,尤其在使用像pytest这样具有fixture机制的框架时。
2025-10-16 16:43:10
358
原创 python自动化中(包括UI自动化和API自动化)env的作用和使用
Python自动化测试中环境变量的核心作用包括配置管理、敏感信息保护和环境切换。常用工具如python-dotenv和os.environ,通过.env文件存储API密钥、数据库配置等参数。在UI自动化中可管理浏览器配置,在API测试中实现多环境切换。最佳实践包括环境验证、类型转换和安全加密,配合.gitignore保护敏感数据,使测试框架更安全灵活。
2025-10-14 20:17:51
406
原创 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
434
原创 JS - 运算符
掌握这些运算符是JavaScript编程的基础。特别要注意:比较运算符:优先使用===和!==逻辑运算符:理解短路求值的特性现代运算符:掌握??和?的使用场景优先级:不确定时使用括号明确意图。
2025-10-13 16:55:25
340
原创 ES6是什么
ES6是JavaScript语言的一次革命性升级,于2015年发布。它引入了let/const、箭头函数、模板字符串、解构赋值、Promise、模块化等核心特性,解决了传统JavaScript的诸多痛点,使代码更简洁易读。这些新特性为现代前端开发奠定了基础,让JavaScript能够高效开发复杂应用。ES6之后,JavaScript开始每年发布新版本,但ES6仍是现代JavaScript开发的基石。
2025-10-13 16:51:43
423
原创 JS-变量声明
JavaScript变量声明深度解析:从var到let/const的演进 摘要:本文系统梳理JavaScript变量声明核心知识,重点对比var、let、const三者的差异。var存在函数作用域和变量提升特性,而let/const采用块级作用域和暂时性死区机制,避免变量污染。最佳实践推荐优先使用const,需要重新赋值时用let,逐步淘汰var。文中详解作用域差异、TDZ现象、循环变量陷阱等高频考点,并给出模块化开发中的使用建议。掌握这些知识点可编写更安全可靠的代码,也是面试考察的重点内容。
2025-10-13 16:45:18
387
原创 JS - 数据类型
JavaScript数据类型分为原始类型和对象类型。原始类型(按值访问)包括String、Number、Boolean、Undefined、Null、Symbol和BigInt;对象类型(按引用访问)包含Object、Array、Function等。原始类型不可变,赋值时复制值;对象类型可变,赋值时复制引用。类型检测可用typeof(原始类型)和instanceof(对象类型)。关键区别在于存储方式:原始类型直接存储值,对象类型存储引用。理解这些类型对变量赋值、函数传参和内存管理至关重要。
2025-10-13 16:25:42
1124
原创 Cucumber + Playwright 教程
的组合非常适合需要团队协作、需求频繁变更、对软件质量要求高的项目。它确保了所有人对需求的理解一致,并通过自动化测试保证了最终产品的质量。
2025-10-09 23:27:36
345
原创 2023自动化测试岗位面试题分享(部分给出答案,持续更新中。。。)
4. 登陆接口,创建订单的接口,登录接口会返回一个object的数据,里面有一个字段是token,需要放到创建订单的接口中去使用,创建订单的接口还需要有两个字段,一个是订单号,一个是订单时间,订单号需要随机生成一个十位数字,时间需要生成当前时间。在 Python 中,元组是可以作为字典的键的,前提是元组中的元素必须是不可变的。生成器可以理解为是一种特殊的迭代器。线程是进程的一部分,是由cpu进行资源分配和调度的基本单位,多个线程共享一个进程的所有资源,缺点是如果一个线程崩溃都会造成进程的崩溃。
2025-10-09 17:38:31
945
原创 TypeScript 对比 JavaScript
摘要:文章比较了TypeScript(TS)和JavaScript(JS)的核心区别。TS采用静态类型系统,在编译时检查类型错误,支持变量类型注解、自定义类型和对象结构检查,提供更好的代码提示和可读性;JS作为动态类型系统,只会在运行时发现错误。TS的优势包括:更早发现错误、更好的团队协作和代码健壮性,而JS则更灵活。作者目前主要学习JS和Python用于自动化脚本开发。
2025-10-07 21:49:14
461
原创 JSDoc注释
摘要:在VSCode中可通过/**+Tab快速生成JSDoc注释模板,或用Ctrl+Alt+D快捷键。JSDoc包含@param、@returns等标签说明参数和返回值,示例展示如何为类方法添加完整注释。安装DocumentThis等扩展可增强支持,编写JSDoc能提升代码可读性和团队协作效率,建议养成注释习惯。
2025-10-07 20:59:31
351
原创 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
562
原创 JS-模块化
导出:在源文件中使用export。导入:在目标文件中使用import。记住:命名导出需要用{},默认导出不需要。
2025-10-04 20:56:05
430
原创 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
1056
原创 自学 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
956
原创 基于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
506
原创 理解TDD&BDD思想
TDD与BDD的核心区别在于关注点:TDD(测试驱动开发)聚焦代码正确性,通过"红-绿-重构"循环确保技术实现;BDD(行为驱动开发)关注业务价值,采用"讨论-形式化-自动化"流程验证功能是否符合需求。TDD由开发者编写单元测试,使用编程语言;BDD由多角色协作,用自然语言描述用户场景。二者互补:BDD定义"做什么"(系统行为),TDD实现"怎么做"(代码细节)。完整开发流程通常先通过BDD确定需求,再用TDD实现具体功能,最终
2025-09-24 17:03:05
612
原创 Cucumber + Pytest(python)实现自动化(BDD)
摘要: 本文介绍了如何将BDD(行为驱动开发)与pytest+Python结合实现自动化测试。通过pytest-bdd插件,开发者可以使用Gherkin语法编写业务可读的测试用例,同时利用pytest的fixture、参数化等功能。文章详细说明了项目目录结构、Gherkin特性文件编写、步骤定义实现、PageObject模式应用以及测试运行与报告生成方法。这种组合兼具业务可读性和技术灵活性,支持丰富的测试报告和CI/CD集成,是现代化自动化测试的高效实践方案。(150字)
2025-09-24 16:55:01
972
原创 敏捷(Agile)流程
敏捷开发是一种以人为核心、迭代渐进的方法论,强调快速交付可运行软件并持续优化。其核心价值包括:个体互动高于流程工具、可工作软件重于详尽文档、客户合作优于合同谈判、响应变化高于遵循计划。通过Scrum框架(包含三大角色、五大仪式和三大工件)实现短周期迭代开发,每个周期产出可交付的产品增量。敏捷精髓在于拥抱变化、小步快跑和建立信任协作,通过持续反馈调整确保产品始终符合用户需求。
2025-09-24 16:48:53
734
原创 关于BDD、Agile面试题
BDD(行为驱动开发)是一种从业务视角出发的敏捷开发方法,强调用可执行的业务场景(Gherkin语法)作为开发和测试的共同基础。与TDD不同,BDD更关注系统行为而非代码实现。核心实践包括三个Amigos会议(开发、测试、产品负责人协作澄清需求)、编写Given-When-Then场景以及持续自动化验证。BDD能提前发现需求歧义,降低修复成本,但需注意维护场景的简洁性和业务相关性。常用工具有Cucumber、SpecFlow等,选择取决于技术栈。成功案例显示,BDD通过早期讨论实例可避免重大业务逻辑缺陷。
2025-09-24 16:40:58
514
原创 Cucumber + unittest实现自动化
本文介绍了三种在Python中结合BDD思想实现UI自动化的方法:1)最推荐使用behave库,通过标准的Gherkin语法和目录结构实现正宗BDD;2)次推荐pytest-bdd,兼容unittest风格;3)不推荐纯unittest+文档字符串的"山寨BDD"。重点推荐behave方案,因其完整的BDD实现、成熟的社区支持以及与unittest的无缝结合,能真正发挥BDD在团队协作中的价值。
2025-09-24 16:39:55
587
原创 Git常用命令合集
彻底回退到某个提交,丢弃工作区和暂存区的所有修改。回退到某个提交,保留工作区,重置暂存区。回退到某个提交,保留工作区和暂存区的内容。创建一个新的提交来撤销指定的提交,更安全。将当前工作区和暂存区的修改临时储藏起来。查看工作区和暂存区的状态(非常常用)添加一个新的远程仓库地址并起一个别名。恢复最近一次储藏的修改并删除储藏记录。(Git 2.23+ 推荐)(Git 2.23+ 推荐)查看暂存区和最后一次提交的差异。将暂存区的内容提交到本地仓库。添加所有修改的文件到暂存区。将文件的修改添加到暂存区。
2025-09-21 15:45:08
1056
原创 git status
Git包含四个核心区域:工作目录(编辑文件)、暂存区(准备提交)、本地仓库(存储历史)和远程仓库(共享代码)。工作流程为:修改文件→git add→git commit→git push→队友pull。多区域设计提供灵活性、审查机会和原子性提交,可用厨房类比记忆:工作台面→备菜盘→冰箱→中央厨房。理解这些区域及其交互是掌握Git的关键。
2025-09-19 17:04:09
926
原创 Git & GitHub 个人账户创建教程
分布式版本控制系统:记录文件变化,可以回溯到任意版本本地操作:大部分操作在本地完成,无需联网分支管理:轻松创建、合并分支,支持并行开发代码托管平台:基于 Git 的云端代码仓库协作工具:支持多人协作开发开源社区:全球最大的开源代码托管平台。
2025-09-19 16:51:38
1229
原创 git 本地仓库与远程仓库链接
如果我们本地有个项目但是没有链接到远程仓库是会报错的,所以我们在创建好git个人账户之后要去链接上我们远程的仓库。勾选 "Initialize this repository with a README",点击右上角 "+" → "New repository"权限:Public(公开)或 Private(私有)这次可以勾选 "Add a README file"仓库名称:my-project(与本地目录名一致)点击 "Create repository"描述:可选填写项目描述。名称与本地项目名一致。
2025-09-19 16:50:33
775
原创 git忽略CRLF警告
CRLF 警告:✅ 通常没有实质性影响,可以安全忽略✅ 主要是为了跨平台协作的一致性✅ 现代开发工具都能正确处理推荐操作:# 设置自动处理(Windows 用户)# 或者创建 .gitattributes 文件# 或者直接忽略警告对于你的项目:如果你一个人开发,可以忽略这个警告如果团队协作,建议配置或使用这样就不会被这个警告困扰了。
2025-09-19 16:19:02
452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅