分类目录归档:自动化测试

Playwright视觉回归:截图不是越多越好

发表评论 971 浏览量

Playwright视觉回归:截图不是越多越好

2025年3月记录,分类「Playwright」。这篇按当时的测试现场整理,重点放在目标、动作和可复用的检查点。

截图边界

视觉回归最怕截图很多但全是噪音。我只对稳定、关键、业务价值高的区域做截图断言。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

基线管理

  • 屏蔽时间、头像、广告位和随机数据。
  • 基线图按浏览器、分辨率和主题区分。
  • UI 需求变更时同步更新基线并留记录。
expect(page.locator('[data-testid="order-card"]')).to_have_scree

阅读全文

Selenium 4 BiDi能给自动化测试带来什么

发表评论 1435 浏览量

Selenium 4 BiDi能给自动化测试带来什么

2024年2月记录,分类「自动化测试」。内容按测试执行视角整理,尽量把背景、操作和验收口径讲清楚。

我关注的点

Selenium 4 BiDi 对测试最有用的地方,是能更方便地观察浏览器日志、网络事件和页面行为,而不只是操作元素。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

可用场景

  • 捕获 console error,用来辅助判断前端异常。
  • 关注关键接口的请求和响应状态。
  • 把浏览器事件和用例步骤关联到报告里。
logs = driver.get_log("browser")
errors 

阅读全文

pytest-xdist并发执行时的数据隔离

发表评论 1217 浏览量

pytest-xdist并发执行时的数据隔离

2024年2月记录,分类「pytest」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

并发后暴露的问题

xdist 能缩短执行时间,也会把共享数据问题一次性暴露出来。账号、订单号、缓存 key、临时文件都需要隔离。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

隔离策略

  • 用 worker_id 给测试数据加后缀。
  • 每个 worker 使用独立账号池或独立租户。
  • teardown 失败时记录残留数据,方便清理。
@pytest.fixture
def unique_user(worker_id):
  

阅读全文

Playwright Trace Viewer定位前端偶现失败

发表评论 1706 浏览量

Playwright Trace Viewer定位前端偶现失败

2023年10月记录,分类「Playwright」。内容按测试执行视角整理,尽量把背景、操作和验收口径讲清楚。

为什么看trace

前端偶现失败只看截图经常不够。Trace Viewer 能把 DOM、请求、控制台、操作步骤串起来,适合排查偶发等待和接口慢导致的问题。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

保留哪些信息

  • CI 中失败用例保留 trace,成功用例不长期保存。
  • 定位时先看 action 前后的 DOM 和网络请求。
  • 把前端 console 错误和后端 traceId 一起贴进缺陷。
npx p

阅读全文

Appium移动端自动化:稳定性从定位策略开始

发表评论 1562 浏览量

Appium移动端自动化:稳定性从定位策略开始

2023年8月记录,分类「自动化测试」。这篇按当时的测试现场整理,重点放在目标、动作和可复用的检查点。

不稳定来源

移动端自动化的稳定性,很多时候不是 Appium 本身的问题,而是定位策略太脆弱、等待条件太粗、测试机状态不可控。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

定位策略

  • 优先推动开发补 accessibility id。
  • 等待业务元素出现,不用固定 sleep。
  • 用例前清理通知、权限弹窗和历史登录状态。
el = WebDriverWait(driver, 10).until(
    lamb

阅读全文

Selenium Page Object别写成另一种面条代码

发表评论 1905 浏览量

Selenium Page Object别写成另一种面条代码

2022年8月记录,分类「自动化测试」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

问题不是分层

Page Object 很容易被写成另一种面条代码:所有元素和所有动作都塞进一个类,最后比裸 Selenium 还难读。我后来更关注页面对象到底有没有表达业务动作。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

页面对象怎么写

  • 页面类只暴露用户能理解的动作,比如登录、提交、筛选。
  • 定位器集中管理,但断言尽量放在用例或业务层。
  • 重复弹窗、表格、上传组件单独拆组件对象。
class OrderPa

阅读全文

pytest fixture分层设计:登录、数据和环境隔离

发表评论 2305 浏览量

pytest fixture分层设计:登录、数据和环境隔离

2022年3月记录,分类「pytest」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

拆分原则

fixture 写不好,自动化会越来越像一团共享状态。这篇记录的是我把登录、造数、清理和环境配置拆开后的做法,重点是让单条用例可以独立运行。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

层级设计

  • session 级只放环境配置和公共 client,不放业务数据。
  • function 级 fixture 负责创建订单、用户、审批单这类会被修改的数据。
  • yield 后清理失败也要记录,不要静默吞掉。
@py

阅读全文