- 博客(184)
- 收藏
- 关注
原创 Pytest-Bdd-Playwright 系列教程(1):从零开始教你写自动化测试框架「喂饭教程」
最近收到一些小伙伴在后台的留言,能不能提供相应的自动化测试项目的源码参考下,那么今天就来开始新的一期喂饭教程专栏,教大家如何完整的搭建一个完善的自动化测试框架;我们将逐步讲解从项目结构设计到测试执行的整个过程,帮助大家深入理解自动化测试框架的各个组成部分及其工作原理。本文教程内容如下:理解BDD在自动化测试中的应用;掌握设计模式;学会使用Pytest和Playwright进行Web自动化测试;了解如何组织和管理自动化测试项目;掌握测试报告生成和日志管理技巧。
2024-10-24 10:18:06 3315
原创 TestCraft:基于AI驱动的测试想法及自动化脚本生成工具
传统的测试自动化创建流程,通常需要耗费大量的时间与精力,而TestCraft这款开源且免费的浏览器扩展程序,为测试人员提供了革命性的解决方案;TestCraft 基于 GPT-4 强大的 AI 能力,不仅能够生成全面的测试想法,还能自动化生成适配 Playwright、Selenium 和 Cypress 等流行框架的测试脚本。TestCraft 是测试人员不可或缺的智能助手。无论是生成测试想法、自动化测试脚本,还是进行可访问性检测,它都能提供无缝、强大的支持。
2024-10-08 11:41:29 4347
原创 学习方法[1]:如何摆脱无知?(致尚未放弃学习的人)
首先,认识到无知是学习的前提。人类天生具有“为什么”的好奇心,这是驱使我们不断探索和学习的内在动力。但是光有好奇心并不足以解决我们面临的复杂问题。面对未知,我们需要不断提问、寻找答案,并将学习变成一个持续的过程。
2024-08-10 15:26:40 1987 11
原创 Python + Playwright(0):从零开始学 Playwright
Playwright 是一个强大的自动化库,由微软开发,主要用于web端UI自动化测试,支持 Python、Java、JavaScript、C# 等多种编程语言;Playwright 仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,不仅支持无头模式和有头模式,还提供了代码录制功能,极大地提高了脚本编写效率,并且支持移动端自动化测试。
2024-06-23 16:27:15 7187
原创 Flask学习入门笔记
Flask是一个灵活且易于上手的Web框架,适合快速开发小型应用和API。通过掌握路由、请求处理、模板渲染等基础知识,我们可以轻松构建功能丰富的Web应用。随着项目的复杂化,结合Flask扩展和部署工具,进一步提升应用的性能和可维护性。
2025-01-16 09:31:47 535
原创 pytest-instafail:让测试失败信息即时反馈
当测试用例数量庞大时,定位测试失败的原因往往耗时费力。此时,我们可以使用pytest-instafail插件,在测试失败时立即显示错误信息,从而加速调试过程。pytest-instafai是一个pytest插件,它的核心功能是在测试失败时立即显示错误信息,而无需等待所有测试用例执行完毕。默认情况下,pytest会等待所有测试用例执行完毕后,再统一报告失败信息。安装并启用插件后,测试失败的详细信息会立即反馈,帮助我们迅速定位问题。
2025-01-14 11:23:41 909
原创 Browser-Use Web UI:浏览器自动化与AI的完美结合
Web UI是在Browser-Use的基础上,加上了UI操作界面,同时也对一些功能进行了扩展,降低了使用门槛。它允许开发者通过图形界面与 AI 模型进行对话,同时支持包括OpenAI、Anthropic、Gemini等在内的多种大型语言模型。与传统的浏览器交互相比,这种方式更便于执行复杂的网页操作和数据采集。不仅如此,WebUI 还提供了支持自定义浏览器的功能,无需重复登录或认证,直接利用现有浏览器数据执行任务。
2025-01-11 18:19:29 686
原创 Pytest-Bdd-Playwright 系列教程(完结篇):本框架的功能参数说明
本框架支持多种浏览器和设备类型的测试,并具备存储状态管理、测试用例筛选、并行执行、失败重试、报告生成等功能。下面,我将对各个功能参数进行详细阐述。
2025-01-09 15:12:45 1283
原创 Jina AI/Reader:将 URL 和 PDF 内容自动化提取并转换为 LLM 可处理文本
将网页信息输入到大语言模型(LLM)是一个技术挑战。虽然最简单的方法是直接抓取原始 HTML 内容,但这种方式往往不适合直接输入到 LLM 中;在实际抓取时,可能会遇到多种复杂情况,包括网页抓取被反制、HTML 页面中混杂着无关的标记、脚本及样式等,这些都会影响信息提取的质量;Jina AI 是一家专注于搜索与人工智能的创新公司,致力于提供先进的搜索解决方案。其技术帮助开发者和企业构建高效且智能的搜索系统,能够处理多种数据类型并满足复杂查询的需求;
2025-01-07 14:51:50 772
原创 Pytest-Bdd-Playwright 系列教程(18):使用 Jinja2 & 钩子函数生成自定义测试报告
介绍如何在 Pytest 中使用钩子函数(`pytest_terminal_summary`)来拦截测试结果;使用 Jinja2 模板引擎生成自定义的 HTML 测试报告;提供一个完整的代码示例,展示如何整合 Pytest、Jinja2 和钩子函数来生成专业的测试报告。
2025-01-07 08:59:25 949
原创 requests 库使用全攻略(6):Cookies使用详解
Cookies是Web浏览器和服务器之间交换数据的机制,每次浏览器访问相同的服务器时,都会自动将相关 Cookies 发送回服务器;Cookies通常用于保持会话状态、用户身份验证、偏好设置等;在requests库中,可以通过cookies参数或session对象来管理和操作 Cookies;本文将详细介绍如何使用requests库的Cookies,从基本概念到操作技巧,帮助开发者和测试人员高效处理Cookie。
2025-01-03 11:44:44 790
原创 requests 库使用全攻略(5):Session 管理
在HTTP协议中,每一个请求都是独立的,服务器无法知道你之前发送过什么请求,为了在多个请求之间保持关联性,HTTP协议引入了会话(Session)的概念;会话用于在多个请求之间保持某些共享的数据,例如用户认证信息、登录状态或浏览记录。
2025-01-02 14:51:19 1083
原创 requests 库使用全攻略(4):请求认证方式「详细介绍」
在进行网络请求时,常常需要处理认证问题。API和Web服务的访问通常是受限的,只有通过正确的认证方式才能获得权限;本文将深入介绍几种常见的认证方式,包括和OAuth 2.0授权。
2024-12-31 15:25:19 721
原创 requests 库使用全攻略(3):响应对象「详细介绍」
在上一篇文章中,我们详细探讨了requests库中常见的请求参数及其用法。今天,我们将继续深入分析requests库中的响应对象。理解并掌握如何处理 HTTP 响应数据。当我们使用requests库发起 HTTP 请求时,服务器返回的响应数据将被封装成一个响应对象(Response)。该对象包含了与请求相关的所有信息,如状态码、响应头、响应体、Cookies 等。
2024-12-31 09:05:44 1619
原创 requests 库使用全攻略(2):请求参数「详细介绍」
在上一篇文章中,我们简要介绍了requests库的基本用法,这次将深入探讨如何在使用requests发起 HTTP 请求时,传递不同的请求参数。
2024-12-30 16:18:53 1258
原创 requests 库使用全攻略(1):基本用法
requests是一个用 Python 编写的第三方库,用于发送 HTTP 请求。它简化了原生 urllib 库的操作,使得发送 HTTP 请求变得更加直观和易用。通过requests,我们可以轻松地发送各种类型的 HTTP 请求,如 GET、POST、PUT、DELETE 等。在本文中,我们将逐一展示如何使用requests发送这些请求。
2024-12-30 11:03:57 1131
原创 Browser Use:AI智能体自动化操作浏览器的开源工具
browser-use是一个Python库,它能够帮助我们将AI代理与浏览器自动化操作结合起来;通过这个库,我们可以定义AI代理的任务,允许其在浏览器中执行特定操作,如访问网页、点击按钮、填写表单、提取网页信息等;browser-use结合了浏览器自动化(Playwright)工具,能够提供稳定的跨平台支持,使得我们能够在不同操作系统上运行自动化任务。
2024-12-27 14:20:08 2147
原创 Python的__doc__属性:深度解析与实用技巧
在Python的面向对象编程中,__doc__属性是一个非常重要且常被忽视的功能;它是Python中的一个内建属性,用于存储类、函数、模块或方法的文档字符串(docstring);通过__doc__,开发者不仅可以提高代码的可读性,还可以为后期的代码维护提供方便;本文将深入探讨__doc__属性的用法、优势及最佳实践,并通过示例代码加以说明。__doc____doc__属性是Python中一个非常有用的特性,它不仅增强了代码的可读性,还能为API文档生成、调试等工作提供便利。
2024-12-26 16:59:19 719
原创 如何在网页端使用 IDE 高效地阅读 GitHub 源码?
随着开源项目的不断增加,GitHub 已成为开发者们存储和分享代码的重要平台;对于开发者来说,如何快速地阅读和理解这些代码、如何便捷地查看不同版本的代码,往往是提高开发效率的关键;而GitHub1s,作为一个将 GitHub 仓库转化为 VS Code 风格界面的工具,恰好为开发者提供了这一解决方案。
2024-12-25 10:00:55 1096
原创 python-dotenv:管理多环境配置
python-dotenv是一个用于管理环境变量的 Python 库,它可以让你将配置项(如 API 密钥、数据库连接字符串等)存储在.env文件中,并在代码中加载这些变量。这种做法非常有用,尤其是在开发、测试、和生产环境中,不同环境的配置可能不同。是一个很好的工具,能帮助你管理项目中的配置和环境变量,特别是在涉及敏感数据时。通过.env文件,你可以轻松地在开发、测试、生产等不同环境之间切换配置。
2024-12-19 17:58:00 534
原创 Firecrawl教程②:通过 LLM 从页面中提取结构化数据
Firecrawl 通过与大型语言模型(LLM)结合,Firecrawl 能够智能地理解网页内容,并将其转化为我们所需的结构化数据格式,帮助我们节省了大量的手动处理时间。模式定义方式:允许我们通过 JSON 结构明确指定需要抓取的数据格式,确保数据提取的一致性和准确性;无模式提取:提供了更为灵活的方式,依靠简单的提示词就能从网页中提取所需的内容,极大地提升了适应性,特别适合复杂或动态网页的抓取需求。
2024-12-19 10:23:37 328
原创 Firecrawl教程①:自动化抓取与数据转化,赋能AI应用
在如今的技术生态中,如何快速、有效地获取并利用网站上的信息变得尤为重要。尤其是在人工智能(AI)和大语言模型(LLM)的应用不断扩展的背景下,能够将一个网站的内容转化为机器学习模型可以直接使用的格式,已成为一种迫切需求。Firecrawl 是一款 API 服务,支持将整个网站的内容抓取并转换为多种格式,包括清晰的 Markdown、结构化数据、HTML 等,能够有效绕过复杂的反爬虫机制,抓取并提取动态页面内容。
2024-12-18 17:15:03 1356
原创 Pytest-Bdd vs Behave:选择最适合的 Python BDD 框架
行为驱动开发(BDD)是一种敏捷软件开发技术,为了促进开发人员、测试人员与非技术或业务相关人员之间的协作。BDD 通过采用简单的“Given(给定)、When(当)、Then(那么)”格式(Gherkin 语言)来编写测试用例,使得任何人都能够理解。在进行 Pytest BDD 与 Behave 比较之前,让我们先看一下 Python 中常见的 BDD 框架。
2024-12-17 09:47:35 1162
原创 Pytest-Bdd-Playwright 系列教程(17):标签管理(Tags)
为了有效地管理和执行大量的测试用例,我们需要一种灵活的方式来控制哪些测试用例应该执行,哪些可以跳过;Pytest-BDD作为一种基于 Behavior Driven Development(BDD)的测试框架,提供了标签(Tags)功能,允许我们在Feature文件和Scenario中添加标签,从而灵活地控制测试的执行顺序与范围。
2024-12-16 17:30:02 1172
原创 Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告&Gherkin格式命令行报告
在自动化测试中,生成详细、易于理解的报告是非常重要的,尤其是当我们使用行为驱动开发(BDD)方法时;pytest-bdd与Cucumber标准兼容,可以生成多种格式的测试报告,帮助团队更高效地沟通和协作;本文将介绍如何使用pytest-bdd生成标准化的JSON报告,并展示如何在命令行终端使用Gherkin格式进行报告输出。
2024-12-13 09:23:25 1149
原创 Pytest-Bdd-Playwright 系列教程(15):背景(Background)
在pytest-bdd中,背景(Background)用于定义在每个场景执行之前需要共享的步骤。通过使用背景,我们可以避免在多个场景中编写相同的Given步骤,从而减少重复并提高可读性。背景中的步骤在每个场景执行之前都会被调用,这样可以确保所有场景都有相同的初始条件。
2024-12-12 16:13:54 558
原创 Python中的正交配对测试库:allpairspy
All-Pairs Testing (正交配对测试)是一种广泛应用于软件测试中的组合测试方法,其核心思想是通过生成所有可能的参数配对来降低测试用例的数量,从而提高测试效率。在进行参数组合测试时,通常会遇到大量可能的组合情况,而 All-Pairs Testing 通过只测试每个可能组合的配对(两两组合),来减少测试用例的数量,同时确保覆盖所有的配对。allpairspy是 Python 中非常强大的一个工具,它能够帮助我们快速生成全对测试所需的所有配对组合。
2024-12-11 16:30:44 452
原创 Pytest-Bdd-Playwright 系列教程(14):Docstring 参数
在自动化测试的过程中,我们经常需要处理复杂的测试数据或需要输入多行文本。Pytest-Bdd提供了一种解决方案——Docstring参数,它能够有效地解决这些问题;Docstring参数允许在 Gherkin 语法的步骤中嵌入多行文本,这在多种测试场景下都非常有用,包括但不限于复杂业务规则的描述、长文本输入的测试、详细测试步骤的记录、复杂预期结果与API 响应内容的验证以及文本内容的比对等。
2024-12-11 08:59:39 776
原创 如何在UI自动化测试中创建稳定的定位器?
在自动化测试中,创建稳定的定位器至关重要。脆弱的定位器经常导致测试失败,增加了维护难度,并可能引起不必要的错误;为了确保自动化测试的稳定性和可维护性,测试人员需要避免一些常见的陷阱,并根据最佳实践设计更为可靠的定位器;本文将探索如何通过一些策略,帮助你避免这些问题,并选择高效、稳定的定位器,从而提升测试的稳定性。在自动化测试中,创建稳定、唯一且可靠的定位器就像在复杂的城市中寻找最合适的路线。
2024-12-07 16:11:54 1170
原创 Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)
Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;
2024-12-06 09:35:10 985
原创 常见的几种软件开发过程模型
在软件开发的过程中,选择合适的开发过程模型是确保项目成功的关键因素之一;不同的开发过程模型适应不同类型的项目需求,它们有各自独特的优势和适用场景;本文将详细探讨常见的几种软件开发过程模型,包括传统的瀑布模型、增量模型、螺旋模型、V模型、敏捷模型、RAD模型以及DevOps模型,并分析每种模型的特点、适用场景及其优缺点。
2024-12-04 15:52:00 349
原创 软件质量模型:全面评估软件产品的六大核心特性
软件质量是衡量软件产品是否符合用户需求、是否满足预期功能的标准之一;随着软件开发行业的不断进步,软件质量已不再是简单的功能实现,而是一个多维度、多层次的综合评价体系;软件质量模型为我们提供了系统的框架来评估软件的各项性能,其中最为经典和常用的就是ISO 9126软件质量模型,该模型将软件质量分为六大核心特性,每个特性都有其明确的定义、关键点和评价标准;软件质量模型的六大核心特性共同构成了一个全面的评估框架,为我们提供了衡量软件产品质量的标准。
2024-12-04 15:26:05 416
原创 Python虚拟环境管理工具:Pipenv
Pipenv 是一个流行的 Python 虚拟环境和依赖管理工具,简化了 Python 项目的依赖管理和虚拟环境的使用。它结合了Pip和virtualenv的功能,提供了更为简洁和高效的管理方式。
2024-12-03 17:30:50 1024
原创 Python虚拟环境管理工具:virtualenv
在Python开发过程中,我们常常需要管理不同项目的依赖。每个项目可能依赖不同版本的Python库,因此,如何有效管理这些库成为了开发者日常工作中不可忽视的问题。虚拟环境是解决此类问题的重要工具,而virtualenv是最常用的Python虚拟环境管理工具之一。虚拟环境是一个隔离的工作空间,它允许你在一个系统中为不同的项目创建独立的运行环境。每个虚拟环境都有自己独立的Python解释器和第三方库,避免了不同项目之间依赖冲突的问题。
2024-12-03 11:46:42 1309
原创 Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)
在自动化测试中,钩子(hooks)是非常重要的工具,它能够帮助我们在特定的测试执行阶段注入自定义逻辑,从而提高测试的灵活性和可维护性;对于使用Pytest-Bdd和Playwright进行测试开发的团队而言,了解并正确使用这些钩子不仅可以优化测试流程,还能够在调试和异常处理时提供极大的帮助。
2024-11-25 10:53:58 1238
原创 Pytest-Bdd-Playwright 系列教程(12):步骤参数解析(Step arguments)与类型转换
在 pytest-bdd 中,步骤参数是构建动态、灵活测试用例的核心功能之一,它允许通过占位符的形式将具体值插入步骤中,从而避免重复编写相似的场景;我们可以通过给步骤添加参数来重用步骤,实现单一实现和多重使用,从而使代码更简洁;本文将探讨如何通过简单字符串解析、自定义正则表达式解析以及参数类型转换等方法来灵活处理不同的参数需求,并通过一个基于计算器功能的完整案例进行说明。
2024-11-19 16:04:30 1289
原创 Pytest-Bdd-Playwright 系列教程(11):场景快捷方式
在 Pytest-Bdd 中,场景是构成测试用例的核心部分。通常情况下,我们需要通过@scenario装饰器将测试函数与特定的场景绑定。当项目规模扩大时,多个feature文件及场景的存在可能会导致手动绑定场景变得冗长、繁琐;场景快捷方式(scenarios函数)正是为了解决这一问题而设计的。它允许我们通过递归方式,自动绑定指定路径下的所有场景,从而极大地提升测试开发效率。
2024-11-18 09:46:20 1499
原创 Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 & 优化场景定义
在实际应用的过程中,我们经常需要根据不同的测试需求来调整功能文件(.feature文件)的路径,以及优化测试场景的定义以减少重复代码;本文将详细介绍如何配置功能文件路径以及如何使用 functools.partial 方法来优化场景定义,帮助大家更高效地管理和执行 BDD 测试。
2024-11-17 09:24:23 1220
原创 Pytest-Bdd-Playwright 系列教程(9):使用 数据表(DataTable 参数) 来传递参数
pytest-bdd在编写复杂的 Gherkin 场景时,往往会涉及到大量的表格数据。为了方便地管理和操作这些表格数据,pytest-bdd提供了一个非常有用的功能——datatable参数。
2024-11-14 10:23:34 1104
原创 Pytest-Bdd-Playwright 系列教程(8):pytest的高级代码生成功能
在自动化测试开发中,代码的编写和维护往往占据大量时间。特别是对于复杂的业务流程,测试用例多且逻辑复杂,手动编写测试代码效率低且容易出错;在这个背景下,我们可以使用pytest的的高级代码生成工具,通过该工具,我们能够自动生成缺失的测试代码,减少重复劳动并提高效率;本文将以购物车功能为例,介绍如何使用pytest的代码生成工具自动生成缺失的代码,帮助小伙伴们快速上手pytest的高级代码生成功能。
2024-11-10 09:06:09 678
空空如也
playwright能否像selenium一样链式调用方法?
2024-04-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人