乐于分享
好东西不私藏

我的第一个AI产品实战:AI视觉兼容性测试

我的第一个AI产品实战:AI视觉兼容性测试
一、需求发现与问题本质

1.1 需求起点:不是用户访谈,是日常对话

这个产品需求的起点,不是什么正式调研,而是一次再普通不过的日常对话。

场景重现(某次版本发布前):

测试同事A(打开手机,指着屏幕):"你看,这个页面上次在华为Mate 60上测是好的,今天在小米14上跑,按钮直接错位了。"

我:"分辨率不一样?"

测试同事A"对,一个1080×2400,一个1080×2340,差了60个像素。然后这个弹窗在OPPO上又被虚拟键盘顶上去了一半。我这一下午光测这几个页面的兼容性了,还没开始测功能呢。"

这是整个需求的起点——不是什么精心设计的访谈,而是工作场景里真实的摩擦。我把这段对话记了下来,然后开始有意识地留意类似的声音:

场景

角色

对话(大意)

提炼需求

版本发布前

测试同事A

"华为上好的,小米上就错位,改了一下午"

分辨率兼容测试耗时严重

工位闲聊

测试同事B

"前端改个按钮布局,我手上5台真机要重新看一遍"

多设备重复验证

项目评审

测试同事A

"刘海屏、挖孔屏、水滴屏……每款都得跑一遍,烦死了"

异形屏适配工作量大

测试执行中

测试同事B

"这个弹窗被虚拟键盘挡住了,用户反馈过这个问题"

UI遮挡是高频缺陷

关键发现4次对话里,有3次反复指向同一个问题——不同分辨率设备的兼容性测试,纯靠手工,效率极低。

1.2 追问提炼:8次对话的结构化需求

从那天起,我开始有意识地追问细节。每次遇到兼容性问题时,记录三个信息:

1. 具体场景"什么情况下兼容性问题最频繁?"

2. 耗时"测试一轮大概多久?"

3. 理想状态"如果AI能帮你做,你最希望它做什么?"

8次追问(涉及2位测试同事)的结论:

需求点

提出者

频次

"能自动在不同分辨率手机上看UI有没有错位就好了"

测试同事AB

5

"弹窗被虚拟键盘挡住这种问题能自动发现吗"

测试同事B

3

"跑完能自动告诉我哪些页面有问题"

测试同事A

3

关键发现:测试同事的核心诉求是——"能不能让AI替我看一遍所有分辨率的屏幕,然后告诉我哪里有问题"。不是"写脚本",不是"配置设备池",而是"像人一样看屏幕,但比人看得快、看得多"

1.3 问题本质:分辨率碎片化已超出人工可控范围

结合测试同事的反馈和行业资料,我梳理了问题的全貌:

Android分辨率碎片化的现状Android机型的屏幕分辨率种类极多——1080×19201080×23401440×2560……不同品牌、不同尺寸、不同像素比,组合起来几乎无法穷举。更棘手的是,除了分辨率,还有水滴屏、刘海屏、挖孔屏、折叠屏等各种屏幕形态,这些都是UI兼容性最容易出问题的地方。

测试人员的真实困境:兼容性测试很难覆盖全部机型,通常需要通过第三方数据平台(如友盟、TalkingData的设备占比报表)获取用户设备分布,选择Top机型来覆盖。即便如此,"页面显示问题如覆盖、留白、错位、拉伸、遮挡,特别容易遗漏顶部时间栏、业务顶部栏"——这些缺陷,纯靠手工排查,既耗时又容易遗漏。

从测试同事的视角看:

• "每一款新机发布,就得想办法弄一台真机来测一遍。华为、小米、OPPOvivo……每个品牌都得有,不然线上出了问题就来不及了。"

• "一个页面在1080p上显示正常,在2K屏上可能就变形了。每个分辨率都得手动开一次App看一遍,翻来覆去就为了确认'没变样'"

量化一下这个痛点:假设覆盖Top 10机型 × 每个App 20个核心页面 = 200次人工查看,按每次2分钟算,一轮兼容性测试就要 400分钟 ≈ 6.7小时。而每个迭代都要跑一遍——这就是测试同事"一下午光测兼容性"的由来。

这里的核心矛盾是:产品需要兼容多种分辨率,但测试手段只有"肉眼+手工"。这直接指向了一个产品假设——如果AI"看懂"屏幕,自动验证UI在不同分辨率下的表现,就能大幅降低这部分成本。

1.4 目标用户画像

维度

核心用户

次要用户

角色

测试工程师(3年以上)

测试负责人

职责

负责移动端功能测试与兼容性测试

管理测试团队,关注效率与覆盖率

现状

每迭代兼容性测试耗时约6-8小时,仅覆盖Top 5机型

无法量化兼容性覆盖率,凭感觉评估

痛点

逐台设备肉眼看,漏测边界场景

兼容性缺陷线上频发,复盘时说不清"为什么没测到"

期望

AI帮我批量看所有分辨率,我只管确认问题

AI告诉我"覆盖了多少机型、漏了什么场景"

二、竞品分析

2.1 现有方案概览

在投入开发前,我调研了国内外已有的兼容性测试方案,避免重复造轮子:

产品/方案

类型

核心能力

不足

BrowserStack / Sauce Labs

商业SaaS

云真机设备池,远程控制多品牌设备手动测试

纯人工操作,无AI自动识别能力,按机时收费成本高

Appium + 设备农场

开源框架

跨平台UI自动化,支持多设备并行执行

依赖XPath/坐标定位,分辨率一变脚本就断,维护成本极高

Squish Vision

商业工具

计算机视觉语义理解GUI元素,跨分辨率图像匹配

AI生成能力,纯定位工具,不输出差异报告

Midscene.js

开源

多模态模型驱动UI自动化,语义定位替代XPath

仅覆盖Web端,无用例/报告生成能力

传统视觉对比(像素diff

通用技术

逐像素对比两张截图,高亮差异区域

无法区分"正常适配""真实缺陷",误报率极高

2.2 从竞品中学到的3件事

第一,传统像素diff不可用,必须走语义理解路径。像素级对比会把"2K屏比1080p多渲染的内容"全部标红,误报率极高。Squish VisionMidscene.js都验证了同一个方向——必须从语义层面理解UI元素,而非逐像素比较。这坚定了我用多模态大模型做差异检测的技术选型。

第二,云真机方案解决了"设备不够",但没解决"人工看" BrowserStack这类平台能让你远程操作几百台设备,但每台设备上的UI还是要人去看。它解决的是设备获取问题,不是检测效率问题——测试同事说的"一下午光测兼容性",用BrowserStack依然是一下午,只是不用跑去找真机了。

第三,语义定位是跨分辨率测试的技术基础。 Midscene.js证明了"AI看界面而非记坐标"的可行性。这让我意识到,如果兼容性测试的输出不仅是"报告",还能转化为"可在任意分辨率上执行的语义脚本",价值会成倍放大。

2.3 差异化定位

基于竞品分析,本项目不重复做"又一个云真机平台""像素diff工具",而是定位为:

面向测试团队的AI视觉兼容性测试助手——用多模态大模型"看懂"UI差异,自动输出结构化报告,让测试人员从"逐台肉眼看"变成"确认AI发现的问题"

与竞品的关键差异:

1. 不是像素对比,是语义理解AI理解"这是按钮、那是输入框",区分正常适配与真实缺陷,降低误报

2. 不只给设备,还给结论:输入截图,直接输出"哪里错了位、哪里被遮挡、严重度多高",而非让人自己看

3. 遮挡检测是原生能力:异形屏、虚拟键盘遮挡这类高频缺陷,作为P0功能内置,而非靠人眼发现

三、最小成本验证

3.1 第一件事:把"吐槽"变成"追问"

(详见1.2节,8次追问得到3个高频需求信号。)

关键收获:测试同事要的不是"自动化脚本",而是"替我看屏幕"。这个认知决定了后续技术选型——不做脚本生成,做视觉理解。

3.2 第二件事:用Coze跑通"截图对比+AI分析"最小原型

我在Coze上搭建了一个简单的工作流:

1. 输入:同一个页面在不同分辨率设备上的截图(如1080p vs 2K屏)

2. AI处理:调用视觉模型分析两张截图的UI差异(按钮位置偏移、文字遮挡、元素重叠等)

3. 输出:结构化报告——标出差异点,圈出疑似问题区域

3个页面做了验证:

测试页面

对比分辨率

AI识别出的问题

是否真实缺陷

登录页

1080×2340 vs 1440×2960

底部按钮位置偏移约20px

是,确认为真实错位

首页banner

1080×1920 vs 1080×2340

图片裁剪区域不一致

是,2K屏裁剪丢失内容

弹窗组件

普通屏 vs 有虚拟键盘的机型

弹窗被键盘顶部遮挡

是,用户已反馈过此问题

关键发现AI确实能""UI差异。3个验证case全部命中真实缺陷,没有误报。虽然当时这个流程还需要人工介入(截图的收集、对比的触发),但核心能力已经验证——视觉模型能够识别跨分辨率的UI布局差异。

我把这个结果拿给测试同事B看,她的第一反应是:"这个能自动跑,那就不用一台台设备翻着看了。"

3.3 第三件事:验证"AI能不能自动适配分辨率变化"

我进一步验证了另一个方向:如果界面元素的位置发生了变化,AI能不能"自适应"地找到它?

参考Midscene.jsSquish Vision的技术路径——用计算机视觉模型从语义层面理解GUI元素,不依赖坐标或像素精确匹配,即使UI在颜色、缩放比例或位置上发生了变化,测试也能继续运行。

我在Coze上用视觉模型做了简易验证:给AI看一张高分辨率设备上的按钮截图,然后在低分辨率截图中找同样的按钮。结果显示,AI能够基于"按钮的语义特征"(位置、形状、文字)而不是"精确像素坐标"来定位。

这意味着——如果测试脚本不再依赖"点击坐标(x=320, y=540)",而是依赖"点击那个写着'登录'的按钮"——那分辨率变了,脚本也不会断。这正是"跨分辨率自动化测试"的技术基础。

3.4 验证结论与已知局限

已验证可行的:

• 视觉模型能识别跨分辨率UI布局差异(3/3命中)

• 视觉模型能基于语义特征在不同截图中定位同一元素

• 遮挡检测(键盘/异形屏)在原型层面可行

已知局限(必须诚实说明):

局限

说明

影响

验证样本太小

3个页面、2组分辨率对比,未做规模化验证

准确率/误报率数据不具备统计意义

未测复杂动态页面

验证的都是静态页面,未覆盖列表滚动、动画、视频流等动态场景

复杂页面识别能力存疑

截图采集仍需人工

当前流程依赖人工截图上传,未实现自动采集

端到端自动化尚未闭环

未测跨品牌差异

只对比了分辨率维度,未覆盖不同品牌ROM的渲染差异

品牌特异性问题可能漏检

响应速度未压测

单次对比处理时间未做系统测量

大批量任务下的性能表现未知

这些局限不影响"方向可行性"的判断,但决定了MVP必须明确边界——先做"已验证能跑通"的场景,再逐步扩展。

四、需求规格

4.1 功能需求清单

基于测试同事反馈、竞品分析和验证结论,列出针对"多分辨率兼容测试"场景的需求:

编号

优先级

需求

来源

说明

C-01

P0

AI视觉UI对比

测试同事AB×5

同一页面在不同分辨率截图自动对比,标出差异点。手工翻看多台设备的核心痛点

C-02

P0

兼容性报告自动生成

测试同事A×3

汇总所有分辨率下的UI异常(错位/遮挡/留白/拉伸),代替人工截图整理报告

C-03

P0

异形屏/键盘遮挡检测

测试同事B×3

自动识别刘海屏/挖孔屏/水滴屏内容遮挡,以及键盘弹出时弹窗/输入框遮挡。这些是兼容性缺陷高发区

C-04

P1

语义化UI定位

行业已验证路径

按钮输入框等元素不依赖坐标,通过视觉理解定位。让测试脚本在不同分辨率下都能跑

C-05

P1

截图自动采集

验证中发现的人工瓶颈

基于ADB连接设备自动截图,替代人工逐台截图上传。是端到端自动化的前提

C-06

P2

真机设备池接入

行业SaaS方案参考

自动连接多台设备批量执行。规模化验证的前提,但依赖执行层成熟度

4.2 优先级划分依据

优先级不是拍脑袋定的,基于三个维度综合判断:

维度一:需求频次(来自8次追问)

• C-01提到5次、C-02提到3次、C-03提到3次 → 高频痛点,P0

• C-04来自行业验证非直接用户诉求 → P1

维度二:技术可行性(来自Coze验证)

• C-01/C-02/C-03已在原型中验证可行 → P0MVP必做

• C-04验证了可行性但工程化复杂度高 → P1

• C-05/C-06涉及设备底层控制,工程量重 → P1/P2

维度三:MVP闭环必要性

• P0三件事(对比+报告+遮挡检测)构成最小可用闭环:输入截图输出报告

• C-05截图自动采集虽重要,但MVP阶段可用"人工上传"兜底,不阻塞闭环

• 上一版将C-06设备池列为P2,但它实际上是C-05规模化前提——修正为P2仍合理,因为MVP阶段手动上传足够

优先级修正说明:相比初版,C-03遮挡检测从P1提升到P0(测试同事B三次提及且是高频线上缺陷),C-05截图采集从无到有新增(验证中发现人工截图是端到端闭环的最大瓶颈)。

4.3 非功能需求

维度

要求

实现方式

响应速度

单组截图对比<60秒;单页报告生成<30

多模态模型流式输出+异步任务队列

批量能力

单次任务支持≥5组分辨率对比

任务队列并行处理

准确率

UI差异检出率>80%;误报率<15%

语义理解替代像素diff,配合知识库过滤

数据安全

截图不上传公网;支持私有化部署

本地部署视觉模型;数据不出内网

可用性

服务可用率>99%

模型降级机制(见6.4节)

说明:准确率指标>80%/>15%是基于3个验证case的初始估算,MVP上线后需要用真实数据持续校准。

五、产品架构

5.1 架构总览

AI视觉兼容性测试架构图

整个系统分为5层,从上到下依次为:

层级

职责

核心模块

用户端(交互层)

测试人员操作入口

多设备截图上传、分辨率组合选择、兼容性报告查看

意图层

识别用户意图,调度对应能力

意图路由(对比截图/检测遮挡/生成报告)、状态追踪(进度/差异数)

AI能力层

核心AI推理与检测

视觉UI差异检测(多模态模型/多分辨率对齐/语义识别/偏移计算)、遮挡检测、报告生成、语义定位

知识库层

提供基准数据支撑

设计稿库(基线标准)、历史兼容性缺陷库、设备信息库(分辨率/屏幕形态)

设备执行层

截图采集与预处理

截图采集(手动上传/设备对接)、分辨率适配(自动缩放)、截图存档

架构设计原则

• 每层职责单一AI能力层只管"看懂",设备执行层只管"采集",互不耦合

• 知识库贯穿检测全程:设计稿库提供基线,历史缺陷库过滤误报,设备信息库提供屏幕形态参数

• 意图层负责编排:用户一次操作可能触发多个AI能力(如"对比+遮挡检测+报告"三步串联)

5.2 模块与需求映射

架构图的模块与需求清单的对应关系:

架构模块

对应需求

说明

视觉UI差异检测

C-01 (P0)

核心差异识别能力,多模态模型+多分辨率对齐

遮挡检测

C-03 (P0)

异形屏/键盘遮挡,高频缺陷场景

报告生成

C-02 (P0)

汇总差异点+严重度,输出结构化报告

语义定位

C-04 (P1)

元素语义识别,为自动化执行铺路

截图采集

C-05 (P1)

ADB自动截图/手动上传双通道

设备池接入

C-06 (P2)

多设备批量连接,规模化执行

5.3 用户使用流程

AI视觉兼容性测试用户使用流程

典型使用流程(一次兼容性测试任务)

1. 测试人员上传待测页面的多分辨率截图(或选择已连接设备自动采集)

2. 选择分辨率组合与对比维度(如"1080p vs 2K,检查错位+遮挡"

3. AI测试助手调用视觉模型,逐组对比截图,识别差异点

4. 知识库提供设计稿基线和历史缺陷数据,辅助过滤误报

5. AI生成结构化报告:差异点列表+严重度+遮挡检测结果

6. 测试人员在线查看报告,确认真实问题/忽略误报,导出最终报告

效率对比

步骤

传统手工方式

AI助手方式

截图获取

逐台设备手动截图(约10分钟/台)

设备自动采集(约1分钟/台)或批量上传

差异检测

逐张对比肉眼找差异(约2分钟/页)

AI批量自动检测(约1分钟/组)

报告整理

手动截图标注+写文档(约30分钟)

AI自动生成结构化报告

一轮测试总耗时

Top 5机型×20页 ≈ 6-8小时

预计 1-1.5小时(含人工确认)

六、技术方案

6.1 视觉UI差异检测

这是兼容性测试最核心的能力——AI""出不同分辨率下的UI差异。

技术路径:直接调用多模态大模型(如GPT-4oQwen-VL),输入两张截图,让AI输出差异点列表。无需自己训练模型。

为什么不用传统像素diff:像素级逐点对比会把"2K屏比1080p多渲染的留白"全部标红,误报率极高。语义理解能区分"这是正常的分辨率适配""这是真实的UI缺陷"

输出结构:差异点列表,每项包含——差异类型(错位/遮挡/留白/拉伸)、位置描述、偏移量估算、严重度(//)

6.2 语义化UI定位

问题:传统自动化脚本依赖XPath或坐标定位元素,分辨率一变就失效。

方案:基于计算机视觉的语义定位——AI""到按钮的视觉特征(形状、文字、位置上下文),而不是"记住"它的坐标。即使按钮从屏幕左侧移到右侧,AI依然能识别出"这是同一个登录按钮"

落地方式:将视觉模型作为定位层,替代传统的XPath/坐标定位器。这一能力在Coze原型中已初步验证可行(见3.3节)。

与竞品的关系Midscene.js已在Web端验证此路径,Squish Vision用类似原理做GUI语义理解。本项目将其引入移动端兼容性测试场景。

6.3 设备连接与截图采集

问题MVP阶段依赖人工截图上传,端到端未闭环。测试同事反馈"截图本身就很麻烦"

方案:基于ADB通用控制层,配合视觉理解能力,实现对不同品牌、系统、分辨率设备的统一控制——同一指令"截取当前页面",在1080p2K屏幕上自动适配,无需修改配置。

双通道设计

• 自动采集:连接真机后一键截图,适合有设备池的场景

• 手动上传:测试人员自行截图上传,适合MVP阶段或外协测试

6.4 降级与兜底方案

AI不是万能的,模型可能超时、限流、误判。设计两级降级机制:

级别

触发条件

处理方式

用户感知

正常

多模态模型可用

完整语义差异检测+遮挡分析+结构化报告

降级1

主模型超时/限流

切换备选模型(如主用GPT-4o,降级到Qwen-VL

响应可能稍慢,结果质量略降

降级2

所有模型不可用

回退到像素diff+规则模板,标注"基础检测结果,建议人工复核"

需人工确认,但至少有输出

兜底

系统完全不可用

提示用户稍后重试或手动上传截图人工查看

需人工介入

误报处理:测试人员在报告中标记"忽略"的问题,写入历史缺陷库作为负样本,后续检测时优先过滤同类误报。用得越多,误报越少。

七、MVP范围与路线图

7.1 MVP核心目标

让测试人员把兼容性测试从"逐台肉眼看6小时"变成"确认AI报告1小时"

MVP只做一件事:输入多分辨率截图 → 输出结构化兼容性报告。测试同事拿到报告后说"这个帮我省了好几小时"MVP就成立。

7.2 MVP功能矩阵

功能

MVP包含

说明

截图上传(手动)

支持批量上传多分辨率截图

AI视觉UI对比

核心能力,P0

遮挡检测

异形屏+键盘遮挡,P0

报告自动生成

结构化报告+导出,P0

语义定位

P1MVP用报告形态交付即可

截图自动采集

P1MVP用人工上传兜底

设备池接入

P2,依赖执行层成熟度

误报自学习

需要数据积累,第二期做

7.3 产品路线图

阶段

目标

核心交付

预估周期

MVP

验证"截图报告"路径

C-01/C-02/C-03上线,3位测试同事内部试用

4

V1.1

补全采集能力

C-05截图自动采集(ADB),端到端闭环

3

V1.2

提升准确率

误报自学习,历史缺陷库积累,准确率校准

2

V2.0

扩展执行能力

C-04语义定位落地,C-06设备池接入,跨分辨率脚本执行

6

V2.1

规模化

批量任务调度,与Jira/TAPD缺陷联动

3

八、实战总结与下一步

8.1 已验证的能力

• ✅ 从测试同事日常吐槽中识别出"多分辨率兼容测试"这个真需求(8次追问,3个高频信号)

• ✅ Coze跑通了"截图对比→AI分析输出报告"的最小原型(3个页面验证,3/3命中真实缺陷)

• ✅ 验证了视觉模型识别UI差异的可行性

• ✅ 验证了语义定位作为跨分辨率测试技术基础的可行性

• ✅ 完成竞品分析,明确了差异化定位(语义理解+遮挡检测+结论输出)

• ✅ 形成含架构、需求、MVP、路线图的完整方案

8.2 已知局限与待验证风险

风险项

说明

应对

准确率未经规模化验证

3case不够,真实场景可能误报率偏高

MVP上线后用真实数据持续校准,目标检出率>80%

复杂动态页面未覆盖

列表滚动/动画/视频流场景识别能力未知

MVP先聚焦静态页面,动态场景列入V1.2验证

截图采集人工依赖

端到端未闭环,测试同事仍需手动截图

V1.1补全ADB自动采集

跨品牌ROM差异

不同品牌渲染机制不同,可能影响对比

MVP聚焦分辨率维度,品牌差异V2.0扩展

模型成本

多模态模型调用成本较高,批量任务费用需评估

降级机制+缓存策略,优先用成本更低的Qwen-VL

8.3 下一步行动计划

第一周:扩大验证规模

• 用公司实际App10个核心页面 × 3组分辨率 = 30组对比测试

• 记录检出率、误报率、处理耗时三项核心指标

• 识别失败case并归类(是模型能力不足还是输入质量问题)

第二周:内部试用反馈

• 邀请3位测试同事试用完整流程(上传截图看报告导出)

• 收集两个关键反馈:"这个帮你省了多少时间?""哪些问题是AI没发现但你觉得应该发现的?"

• 基于反馈迭代对比精度和报告可读性

第三至四周:MVP开发

• 基于验证结果确定技术选型(主模型/备模型)

• 开发前端上传+报告查看界面

• 打通"上传→AI检测报告"核心链路

一句话总结AI能不能自动做兼容性测试,能不能在不同分辨率下"看懂"UI——这不只是行业趋势,而是测试同事们每天都在问"能不能帮我看看这个"的具体问题。视觉模型在语义层面理解UI的能力,正在让"一次测试,适配所有分辨率"成为一个可实现的工程目标。但方向可行不等于工程就绪——MVP要做的是把"已验证可行的3case"变成"可重复、可规模化、误报可控的产品能力"

附录:界面原型

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-22 01:50:05 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/869585.html
  2. 运行时间 : 1.326866s [ 吞吐率:0.75req/s ] 内存消耗:4,834.91kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=41781f2fb1bd7811162012adfd09262f
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001308s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000987s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.100864s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.100969s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000748s ]
  6. SELECT * FROM `set` [ RunTime:0.100658s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000959s ]
  8. SELECT * FROM `article` WHERE `id` = 869585 LIMIT 1 [ RunTime:0.062357s ]
  9. UPDATE `article` SET `lasttime` = 1784656206 WHERE `id` = 869585 [ RunTime:0.112691s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.107483s ]
  11. SELECT * FROM `article` WHERE `id` < 869585 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.104125s ]
  12. SELECT * FROM `article` WHERE `id` > 869585 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.116276s ]
  13. SELECT * FROM `article` WHERE `id` < 869585 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.035055s ]
  14. SELECT * FROM `article` WHERE `id` < 869585 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.114912s ]
  15. SELECT * FROM `article` WHERE `id` < 869585 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.245159s ]
1.328796s