当前位置: 首页 > news >正文

【UI自动化相关】

一、UI框架介绍与发现的问题

1、分层设计

 UI 自动化框架(Python+Pytest+Selenium)分层设计
├─ config/                 # 环境/账号/数据库连接
├─ core/                   # 二次封装 Selenium → BasePage
│   ├─ base_page.py        # 显式等待、重试、失败截图、日志
│   ├─ element.py          # 统一管理定位方式(CSS/XPATH 互备)
├─ pages/                   # PO 模式,一个页面对应一个 class
├─ test_cases/              # 只放测试步骤 + 断言,无定位器
├─ test_data/               # YAML/JSON 数据驱动
├─ utils/                   # 随机身份证、银行卡、OCR 识别、邮件通知
├─ reports/                 # Allure 原始文件 → Jenkins 插件可视化
└─ scripts/                 # 一键本地 docker-selenium 网格 & 失败重跑
  • 2、核心功能

    ① 数据驱动:@pytest.mark.parametrize + YAML,单 case 平均代码行数从 120 → 35。
    ② 失败重跑:pytest-rerunfailures + 截图 + 日志自动挂载到 Allure。
    ③ 分布式:Selenium Grid 4 本地 4 节点,10 条用例并行 → 单轮从 38 min ↓ 11 min。
    ④ 业务脚手架

  • ⑤ 质量门禁:

3、case失败率增高,如何排查?

case 失败率突然升高,排查思路?思路:分层过滤 → 数据说话 → 工具链定位 → 预防动作。落地句子:“上月 Pipline 失败率从 2% 飙到 14%,我按‘三层漏斗’排查:① 环境层:
对比上次成功镜像,发现前端静态资源 CDN 换域名,新域名被公司代理拦截→白屏;
让运维把新域名加入代理白名单,一层解决 60% 失败。② 代码层:
Allure 里失败截图全是‘请稍后’loading,定位到后端限流中间件升级,接口 RT 99 线 400 ms→1.2 s;
把 base_page 里显式等待最长 10 s 调到 20 s,并把重试次数 2→3,二层解决 30%。③ 用例层:
剩余 10% 是数据冲突:A、B 两 case 都用同一银行卡号提现,数据库 UNIQUE 锁;
在 utils 里把‘银行卡号’改成雪花算法生成唯一后缀,三层解决最后 10%。
整体失败率回到 1.8%,并补充一条监控:每天跑 50 轮 Smoke,失败率>5% 自动发飞书告警。”

4、从selenium迁移到playwright怎么做?

思路:评估 → 双跑 → 分模块 → 统一封装 → 老框架下线。落地句子:“迁移分五步,预计 6 个月完成:Step1: 技术评估用 2 周把 20 条核心 case 用 Playwright 重写结论:速度↑55%,CPU↓30%,视频/Trace 自带,ROI 为正。Step2 :封装统一沿用 PO 思想,新建 playwright/pages、playwright/cases,把 base_page 改成同步+异步双通道,支持 pytest-asyncio。Step3 :数据与脚本分离原 YAML 数据层不动,只把读取层抽象成 DataProvider,Selenium/Playwright 共用,零数据迁移成本。Step4 :双跑门禁Jenkins 加并行 stage:Selenium 标记 legacy,Playwright 标记 next;要求 next 通过率 100% 且运行时长<=legacy 60% 才允许合并。Step5 :灰度与下线按模块灰度:先开户→再交易→再后台;每阶段跑 1 周生产对比监控,0 缺陷则切流量 20%→50%→100%;最终 legacy 框架仅保留 10 条兼容性 case,其余下线,机器资源释放 40%。”

5、Grid 节点资源竞争怎么解决?

Grid 节点资源竞争 = 同一台机器(节点)上同时跑的浏览器进程太多,把 CPU、内存、端口、甚至 /dev/shm 都用光了,导致 WebDriver 会话建不起来或跑着跑着就崩

思路:先抛现象 → 根因分析 → 三级治理 → 数据验证。落地句子:“去年双十一前 4节点并发  常报 SessionNotCreatedException。排查发现三处资源竞争:
1、浏览器进程残留:teardown 里只 driver.quit(),但 Chrome 有 5% 概率僵尸进程;
→ 需要加 --no-sandbox --disable-dev-shm,同时用 systemd 定时任务每 30 min 清理一次僵尸进程。2、CPU 抢占:节点 4C8G,开 4 个 Chrome 即满载;
→ 需要降并发度 4→2,并把 Xvfb 分辨率从 1920×1080 调到 1280×720,CPU 利用率 95%→68%。3、端口耗尽:WebDriver BiDi 默认起 9222+ 随机口,Grid 同一节点并发高时口耗尽;
→ 需要升级 Selenium 4.11,显式指定端口区间 9200-9250,并扩大内核端口范围 net.ipv4.ip_local_port_range。
做完后 Grid 稳定性 97.2%→99.8%,并发 10→16 条用例时间反而缩短 3 min。”

6、怎么发现是资源竞争而不是代码 bug?”

给出现场套路:监控三板斧top/htop 一眼看 CPU、内存飙红。dmesg -T | grep -i kill 确认 OOM-killer 是否出手。ss -s 或 cat /proc/net/sockstat 看端口使用是否逼近 3 万。

http://www.dtcms.com/a/538475.html

相关文章:

  • 有限公司网站建设 中企动力重庆搜狗短网址生成
  • 网站建设公司哪家中国建设网官方网站6
  • 我要外包网站网站建设怎么设置权限
  • 个人网站seowordpress 传值
  • 网站打开是目录结构图广东网页空间租赁
  • 游戏事件中心:解耦模块的利器
  • 高端网站建设的流程是什么产品推广介绍
  • php网站源码删除手机网站seo怎么做
  • 网站完成上线时间js怎么做网站
  • 建门户网站要多少钱找兼职做网站建设
  • 跨境电商网站开发文档修改wordpress用户名密码忘记
  • 山东烟台城乡建设学校官方网站建设行政主管部门政务网站
  • 声-振物理信息约束引导深度学习的球磨机滚动轴承故障诊断方法
  • VB.NET 数据库查询与界面交互
  • 个人网站创建平台要多少钱wordpress中的template
  • KingbaseES数据库操作指南(1):SQL语法从入门到精通
  • 网站建设术语阿里云服务器价格
  • 网站版面如何设计Wordpress页面图片设计
  • 网站建设的seo策略crm和scrm有什么区别
  • 杭州集团网站建设方案深圳专业app网站开发
  • 新乡专业做淘宝网站网站设计重要性
  • 公司微网站怎么做的怎么弄推广广告
  • 交通建设门户网站wordpress 去掉主题版权
  • 网站后台登入密码忘记了广告设计专业的单招学校
  • 网站备案万网东莞网站制作网站设计
  • 读论文--Vision Transformer with Deformable Attention(DAT)完整教程
  • 山东网站设计微商城是怎么做的
  • 阿里云可以建设多个网站在线资源
  • 潮牌衣服网站建设可行性分析永久免费云服务器申请
  • 紫金网站建设广告制作包括范围