自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 Playwright知识点总结

【代码】Playwright知识点总结。

2025-10-28 17:05:59 249

原创 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

原创 JS 基础知识

数据格式。

2025-10-15 15:30:01 408

原创 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 - 函数的命名和调用

格式化条件语句方法类注释。

2025-10-13 16:56:05 128

原创 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

原创 Cucumber自学导航

官方学习网站。

2025-10-09 23:13:51 335

原创 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 & GitHub 个人账户创建及链接本地项目教程

访问点击 "Sign up"输入用户名、邮箱、密码完成邮箱验证选择免费计划(Free)

2025-09-19 16:50:58 335

原创 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关注的人

提示
确定要删除当前文章?
取消 删除