Playwright 系列(13):如何调试测试用例

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Playwright 系列(13):如何调试测试用例

大家好,我是阿萨。昨天讲了定位元素的调试方式,今天 学习如何调试写好的脚本。


Playwright检查器

Playwright Inspector是一个GUI工具,帮助编写和调试Playwright脚本。这是我们默认推荐的脚本故障排除工具。



有几种打开Playwright Inspector的方法。


PWDEBUG


设置PWDEBUG环境变量,在调试模式下运行你的脚本。将配置Playwright进行调试并打开检查器。
Bash


PWDEBUG=1 pytest -s


PowerShell:


$env:PWDEBUG=1pytest -s


批处理


PWDEBUG=1 pytest -s


当设置PWDEBUG=1时,会配置其他有用的默认值。

  • 浏览器以头部模式启动
  • 默认超时被设置为0(=无超时)。


使用PWDEBUG=console将配置浏览器在开发工具控制台进行调试。

  • 运行标题。浏览器总是以标题模式启动
  • 禁用超时。将默认超时设置为0(=无超时)。
  • 控制台助手。在浏览器中配置一个playwright对象,生成并突出显示Playwright定位器。这可以用来验证定位器。


Bash


PWDEBUG=console pytest -s


PowerShell



$env:PWDEBUG="console"pytest -s


批处理


PWDEBUG=console pytest -s


page.pause


在浏览器中运行时,从你的脚本中调用page.pause()方法。
同步


# 在下面一行暂停.page.pause()


异步


# 在下面一行暂停. await page.pause()


在Playwright CLI中使用open或codegen命令。


playwright codegen wikipedia.org


逐步浏览Playwright脚本


当你浏览测试的每一行时,检查器会打开一个浏览器窗口,突出显示各种元素。使用探索按钮来选择一个定位器,然后你可以把它复制到你的测试文件中,重新运行你的测试,看看它们是否通过。

使用工具栏播放测试,或使用 "Step over "动作(键盘快捷键:F10)跨过每个动作,或恢复脚本,不再停顿(F8)。


现在我们知道要执行什么动作了,我们可以研究这个动作的细节。例如,当停在一个输入动作(如点击)上时,Playwright即将点击的确切位置会在被检查的页面上用大红点突出显示。


可操作性日志


当Playwright在该点击动作上暂停时,它已经进行了可操作性检查,可以在日志中找到。


如果不能达到可操作性,它就会把动作显示为待定。


探索选择器


使用 "探索 "按钮,将鼠标悬停在页面上的一个元素上,通过点击它来探索它的选择器。然后你可以把这个选择器复制到你的测试中,并重新运行你的测试,看他们现在是否通过了这个选择器。


浏览器开发工具


你可以在Chromium、Firefox和WebKit中使用浏览器开发工具,同时在领导模式下运行一个Playwright脚本。开发者工具有助于。

  • 检查DOM树并找到元素选择器
  • 在执行过程中查看控制台日志(或学习如何通过API读取日志)
  • 检查网络活动和其他开发者工具的功能使用page.pause()方法是暂停Playwright脚本执行和在开发者工具中检查页面的一个简单方法。它还会打开Playwright Inspector来帮助调试。


有头模式

Playwright默认以无头模式运行浏览器。要改变这种行为,请使用headless: false作为启动选项。你也可以使用slow_mo选项来减慢执行速度(每次操作减慢N毫秒),并在调试时跟上。

同步


chromium.launch(headless=False, slow_mo=100) # 或 firefox, webkit

异步


await chromium.launch(headless=False, slow_mo=100) # or firefox, webkit
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
166 0
|
2月前
|
数据采集 测试技术 数据安全/隐私保护
Playwright测试中避免使用no-wait-for-timeout的原因
在Web应用自动化测试中,Playwright作为首选框架,其稳定性至关重要。不当使用`no-wait-for-timeout`会导致测试结果不稳定、不符合真实用户体验且难以调试。推荐采用显式等待策略和合理设置超时时间,结合代理IP技术提高测试成功率和数据多样性。示例代码展示了如何在Playwright中配置代理IP进行数据抓取及分类统计。遵循这些最佳实践可确保测试既可靠又贴近实际用户场景。
Playwright测试中避免使用no-wait-for-timeout的原因
|
1月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
47 4
|
2月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
48 2
|
4月前
|
存储 前端开发 JavaScript
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
|
4月前
|
设计模式 Java 测试技术
Java8实战-重构、测试和调试(二)
Java8实战-重构、测试和调试(二)
150 2
|
4月前
|
设计模式 算法 Java
Java8实战-重构、测试和调试(一)
Java8实战-重构、测试和调试(一)
28 0
|
5月前
|
IDE 测试技术 开发工具
从零开始:使用 Playwright 脚本录制实现自动化测试
Playwright提供了一种便捷的脚本录制功能,类似于Selenium IDE。通过运行`playwright codegen`命令,你可以启动一个浏览器并记录你的操作,生成Python或异步代码。在示例中,展示了如何录制登录百度的过程,生成的代码可以直接用于自动化测试。Playwright Inspector允许你编辑和转换测试代码,支持生成Pytest格式的测试用例,方便Python开发者使用。这个功能使Playwright成为强大的Web自动化测试工具。
220 3
|
5月前
|
Web App开发 测试技术 C++
Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
Playwright是新兴的跨浏览器测试工具,相比Selenium,它支持Chrome、Firefox、WebKit,执行速度快,选择器更稳定。安装Playwright只需一条`pip install playwright`的命令,随后的`playwright install`会自动添加浏览器,无需处理浏览器驱动问题。这一优势免去了Selenium中匹配驱动的烦恼。文章适合寻求高效自动化测试解决方案的开发者。
102 2
|
5月前
|
测试技术
使用 Playwright 复用 Cookie:简化自动化测试的高效方法
Playwright 提供的 Cookie 复用功能允许在不同测试用例间共享会话状态,提高测试效率。通过 `context.set_cookies()` 方法设置共享 Cookie 数据,确保会话在多个测试中保持一致。优点包括节省时间、维持稳定会话,但需注意可能增加测试用例间的依赖。使用此功能可优化自动化测试流程。
153 1
下一篇
无影云桌面