news 2026/9/17 13:53:38

Playwright + Pytest + Allure的组合做web ui测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Playwright + Pytest + Allure的组合做web ui测试

1. 它是什么

可以将这个组合理解为一个针对网站界面进行自动化检查的协作团队。每个成员有明确分工:

  • Playwright负责操作浏览器,模拟真人点击、输入、滚动等所有行为。

  • Pytest是测试框架,负责组织和运行这些检查任务,并判断结果是对是错。

  • Allure是报告生成器,负责将检查过程和结果整理成清晰、可视化的文档。

这就好比装修后的一次系统验收:Playwright是逐个检查门窗、水电的师傅,Pytest是拿着清单指挥检查的项目经理,Allure则是最后出具详细验收报告的分析师。

2. 它能做什么

这个组合主要完成以下工作:

  • 模拟用户操作:自动打开浏览器,访问网页,完成登录、填写表单、跳转页面等完整操作流程。

  • 检查与验证:在执行过程中,自动核对页面内容是否正确,元素是否存在,功能是否正常。例如,提交订单后,检查是否跳转到了支付成功页面。

  • 处理复杂场景:能测试多种浏览器(Chrome、Firefox、Safari),适应网络不稳定、弹窗出现、文件上传下载等情况。

  • 生成清晰报告:自动生成结构化的测试报告,用图表展示通过了多少、失败了哪些,并附上截图和操作步骤,精确指出问题所在。

3. 怎么使用

使用过程可以比作按照一个固定菜谱做菜,步骤明确:

a.准备环境
安装必要的工具包,通常通过一行命令即可完成。

b.编写测试脚本
用Python代码写下测试步骤。例如,测试登录功能:

python

def test_login(page): page.goto("https://example.com/login") page.fill("#username", "test_user") page.fill("#password", "password123") page.click("button[type='submit']") assert page.is_visible("text=Welcome")

这段代码表示:打开登录页,输入用户名密码,点击登录,然后断言页面上应该出现“Welcome”字样。

c.运行测试
在命令行中执行一条指令,Pytest就会自动找到所有测试脚本并运行。可以指定运行单个测试或一批测试。

d.查看报告
测试结束后,Allure会生成一个HTML报告。打开这个报告文件,就能在浏览器里看到树状结构的测试结果、成功率、耗时以及每个失败步骤的截图和日志。

4. 最佳实践

遵循一些好的习惯能让测试更稳定、高效:

  • 结构清晰:像整理书籍一样,将测试代码、页面元素定位、测试数据分开存放。页面元素(如按钮、输入框)单独管理,一旦界面改动,只需更新一个地方。

  • 选择可靠的定位器:优先使用不会轻易改变的属性来定位页面元素,例如给关键元素加上专门的测试属性,这比依赖容易变化的CSS样式更稳定。

  • 明智地处理等待:避免使用固定的睡眠等待。应使用工具提供的智能等待方法,让它自动等待元素出现或可操作,这样测试速度更快、更可靠。

  • 使用夹具管理资源:利用Pytest的夹具功能来统一管理浏览器启动、用户登录等重复操作,让测试脚本更简洁。

  • 并行测试:利用该组合对并行运行的良好支持,同时开启多个浏览器实例执行不同测试,能大幅缩短总体执行时间。

  • 将检查点分散:在一个流程中,在关键步骤后都加入适当的断言,而不是全部集中在最后。这有助于更快定位出问题的具体环节。

5. 和同类技术对比

与之前或同类常用的组合(如 Selenium + unittest/Java + ExtentReports)相比,这个组合有几个显著区别:

  • 执行速度与稳定性:Playwright的架构较新,与浏览器通信更高效。它自动等待的策略减少了因网络或渲染速度导致的随机失败,测试比基于旧版WebDriver的工具更稳定。

  • 编写便捷性:Playwright的API设计直观,用少量代码就能完成复杂操作(如下载文件、拦截请求)。Pytest的语法也比一些Java测试框架更简洁。

  • 多浏览器支持:Playwright直接为三大浏览器提供了一致的API,无需为不同浏览器寻找和配置不同的驱动,开箱即用。

  • 报告能力:Allure报告在信息的丰富度、可视化以及历史趋势展示上,通常比一些基础的报告库更为专业和详细。

  • 生态与调试:Playwright提供了强大的调试工具,如录制操作生成代码、查看时间线追踪。而Selenium拥有更长的历史,社区和资料极其庞大,在处理某些极其陈旧的系统时可能有特殊方案。

总的来说,这个组合是一个现代、高效且功能全面的选择,特别适合新项目或寻求提升测试效率和可靠性的团队。对于已经深度绑定旧有技术栈且运行良好的项目,迁移则需要评估改造成本与收益。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 3:05:26

iSolarBP Pro:赋能设计院,如何用数智化引擎重构核心竞争力?

在“双碳”目标驱动下,分布式光伏市场爆发式增长,设计院作为产业链的关键一环,却面临着“项目多、时间紧、要求高、利润薄”的多重压力。传统依赖CAD手工绘图、经验估算的模式,已难以适应新形势下的市场竞争。iSolarBP Pro专业版&…

作者头像 李华
网站建设 2026/9/4 3:06:33

基于PLC的风电控制系统

基于PLC的风电控制系统设计与实现 第一章 绪论 风力发电作为清洁能源利用的核心形式,其控制系统的稳定性、精准性直接决定风机的发电效率、设备寿命与运行安全。传统风电控制多采用专用控制器,存在拓展性差、故障诊断能力弱、对复杂风况的自适应调节不足…

作者头像 李华
网站建设 2026/9/15 14:22:43

基于Java的旅游网站的设计与实现(11873)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/9/11 21:19:32

基于Java的商店会员系统(11875)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/9/16 23:13:47

https://blog.csdn.net/2401_84760322/article/details/149808483?spm=1001.2014.3001.5502

渗透测试与入侵的区别 渗透测试:以安全为基本原则,通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性,以保护系统安全为最终目标。 入侵:通过各种方法,甚至破坏性的操作,来获取系统权限以…

作者头像 李华
网站建设 2026/9/16 10:19:41

阿里云携手模思智能构建一站式多模态数据处理平台

模思智能简介 上海模思智能科技有限公司(MOSI Intelligence)成立于2024年11月,是国内深度情境智能领航者,依托深厚的学术积淀与卓越的工程落地能力,致力于构建下一代全感官人机交互体系。公司由复旦大学知名教授邱锡鹏…

作者头像 李华