news 2026/6/10 16:58:33

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/6/10 11:14:04

基于PLC的电梯控制系统的设计

基于PLC的电梯控制系统的设计 第一章 绪论 电梯作为高层建筑的核心垂直运输设备,其控制系统的稳定性、安全性与高效性直接关系到人员出行体验和生命安全。传统电梯多采用继电器-接触器控制模式,存在逻辑修改困难、故障率高、维护成本高、响应速度慢等问…

作者头像 李华
网站建设 2026/6/10 15:04:13

【Docker进阶-01】Docker隔离原理与可视化界面-Portainer

【Docker进阶-01】Docker隔离原理与可视化界面-Portainer Docker架构容器与虚拟机Docker隔离原理可视化界面-Portainer /etc/docker/daemon.json 是Docker的核心配置文件。 Docker架构 Docker用Go编程语言编写,并利用Linux内核的多种功能来交付其功能。 Docker使用…

作者头像 李华
网站建设 2026/6/10 15:06:14

AI + 质量:高效工作新方法

当 AI 技术席卷各行各业,质量工作这个依赖严谨性、专业性和流程化的领域,正经历深刻变革。从文书编写到风险评估,AI 以多样化场景打破传统效率瓶颈,成为质量人的 “高效战友”。一、AI 直击质量工作痛点,覆盖全流程场景…

作者头像 李华
网站建设 2026/6/10 14:55:28

逐际动力加码具身智能大小脑融合技术,闵行推具身智能产业新政,特斯拉扩机器人产能,Figure AI拓人形机器人家用场景

逐际动力完成2亿美元B轮融资,加码具身智能大小脑融合技术国内具身智能龙头企业逐际动力宣布完成2亿美元B轮融资,国内外机构及产业资本联合加码,老股东持续跟投,融资资金将重点投入本体硬件制造、小脑基础模型及具身智能操作系统研…

作者头像 李华
网站建设 2026/6/10 14:51:14

力扣1046和1049学习笔记

1.概要碎石头问题,拿两个石头碰撞,抵消共同质量的部分,1046是每次选最重两个,1049是任意选,让质量尽可能小。2.大根堆每次维护最重,如果直接排序的话复杂度过高,因此可以用大根堆,它…

作者头像 李华
网站建设 2026/6/10 14:51:26

cpp对象模型学习笔记1.1-2.8

1.什么是cpp对象模型cpp对象模型是指编译器实际上是怎么实现的c的对象,比如构造函数、析构函数、虚函数、继承关系。2.构造函数在学cpp的时候一般会有这样的知识被告知,当我们没有主动写任何类的构造函数的时候,编译器会为我们合成一个默认的…

作者头像 李华