乐于分享
好东西不私藏

开源or自研,哪个方案更适合软件测试的AI Agent

开源or自研,哪个方案更适合软件测试的AI Agent

AI测试Agent的技术选型,开源和自研是同一条路线上的不同起点,选型偏差的代价是时间和人力成本。本文拆解三个问题:开源和自研各自的能力边界在哪、不同场景该走哪条路、选了开源后续会不会走向自研。


01 行业格局:开源框架已经够多了,但没一个能直接用

先看现状。2024-2026年间,AI测试Agent领域的开源框架出现了爆发式增长,按技术路线大致分三派:

云端推理派:Agent Loop跑在云端,通过视觉语言模型(VLM)理解截图、生成操作指令,本地只负责接收指令和操控设备。代表项目有Open-AutoGLM(智谱开源)、AppAgent(腾讯)。优势是利用云端大模型推理能力,起步门槛低;劣势是强依赖网络,离线场景无解,响应延迟受网络影响。

本地执行派:Agent Loop在本地运行,视觉理解和决策推理通过调用模型API完成,设备控制通过ADB/XCTest等本地工具链实现。代表项目有Mobile-Agent系列、部分基于LangChain的测试Agent。优势是对设备控制更精细,可扩展性强;劣势是需要自行搭建本地环境,部署复杂度更高。

视觉驱动派:纯视觉定位,不依赖DOM结构或控件树,通过VLM直接"看懂"界面。代表项目有Midscene(字节开源),支持Web/Android/iOS/桌面/鸿蒙全平台。优势是跨平台一致性好、Token消耗低(据官方数据比传统方案降低约80%);劣势是对视觉模型精度要求高,精细化操作场景需要调优Prompt。

此外还有一批Agent评测框架(AgentBench、AgentBoard、WebArena、SWE-bench等),专注评估Agent能力而非执行测试,本文不做展开。

框架够多,但直接拿来做项目落地时普遍存在四个Gap:

  1. Prompt适配问题
    :开源方案的提示词是通用的,每个项目的测试场景各有特点,通用提示词在你的业务上准确率可能只有50-60%
  2. 断言能力不足
    :现有方案多聚焦于操作执行,缺少灵活的业务级断言能力,视觉断言误报率偏高(据行业实测数据约15-20%)
  3. 弹窗处理弱
    :弹窗是移动端测试的高频干扰因素,开源框架大多只提供通用弹窗关闭规则,业务弹窗覆盖不了
  4. 用例管理缺失
    :测试用例如何与AI执行无缝衔接、如何做增量维护、如何量化覆盖率,开源方案较少涉及

这四个Gap意味着:开源框架能帮你快速"跑起来",但"跑好"还需要大量定制工作。


02 开源框架的边界:哪些问题它解决不了

模型绑定——换模型的隐性成本

不少开源框架跟特定模型深度绑定。调用方式专为某个模型API写,提示词针对某个模型优化,输出格式按某个模型的返回结构解析。看起来换模型只需改个API Key,实际上:

  • 提示词可能要重写(不同模型对指令格式的偏好不同)
  • 解析逻辑可能要改(不同模型的输出格式、思维链位置不同)
  • 甚至Agent Loop的交互方式都要调整(有些模型支持Function Calling,有些不支持,交互方式完全不同)

一个典型问题:思维链格式不统一。有些模型把思维链放在独立的reasoning_content字段返回,有些直接塞在content里用特殊标签(如<think>...</think>)包裹。如果你的解析层只处理content字段,就会把思维过程当成动作指令去执行,导致Agent行为异常。这类兼容性问题只有在具体对接时才能暴露,无法提前穷举。

动作指令集固定——扩展牵连多层

框架预定义了Tap、Swipe、Type、Back、Home等基础动作,覆盖常见的APP交互场景。但更复杂的操作——长按拖拽、多指手势、截取特定区域做OCR验证、读取短信验证码、切换系统开关——框架动作集不支持,需要自行扩展。

扩展动作涉及三层联动:

  1. 提示词层
    :指令描述要加新动作的说明,Agent才知道有这个能力可用
  2. 解析层
    :正则匹配或JSON解析要加新动作的格式识别
  3. 执行层
    :方法映射要加新动作到具体API调用的对应关系

改一处联动三层,且修改后原有动作的解析可能受到影响。

异常处理与业务不匹配——通用逻辑的盲区

开源框架的异常处理是通用的:元素找不到就重试、弹窗出现就按规则关闭、页面卡住就Back。但特定业务场景的异常远比这复杂:

  • 车机测试:CAN信号丢失导致黑屏、TSP接口超时导致状态不一致
  • 支付场景:风控弹窗、支付密码键盘、网络中断后重试幂等性
  • 金融合规:特定操作需要二次确认、敏感数据不能出现在日志里

通用异常处理逻辑覆盖不了这些场景,而在框架外部叠加补丁逻辑,维护成本会随补丁数量快速增长。

什么时候开源框架是正确起点

尽管有上述边界,开源框架在以下场景仍然是合理选择:

条件
说明
第一次做AI测试Agent
需要快速跑通一个能用的基线,验证"AI测试行不行"
测试场景通用
常见APP交互、标准UI操作,不需要复杂异常处理
团队技术储备有限
Python基础能力有,但不熟悉Agent架构和LLM API对接
时间压力大
2-4周内必须看到效果
探索阶段
目标是验证可行性,不是建设生产级系统

03 自研的成本构成:可见部分与隐性部分

自研的优势在于完全可控——架构、模型、提示词、动作集都可以按需设计。但可控性的代价容易被低估。

可见成本

架构设计和基础编码。 一个完整的AI测试Agent框架至少包含:Agent Loop主循环、截图和设备信息获取、模型调用封装、动作指令解析、设备操作执行、上下文管理、步数保护、结果返回。仅基础模块的代码量就在3000行以上,还不算提示词调优和异常处理。

从零到第一版可用的框架,1-2人投入通常需要2-3个月,后续调优和异常处理再追加1-2个月——前提是团队已有LLM API调用经验,学习成本另计。

提示词工程。 系统提示词(角色定义+动作指令集+执行规则)、测试用例提示词、AI验证提示词——三层提示词都需要反复调试。而且提示词不是写完就固定,模型在迭代、业务在变、场景在扩展,提示词得跟着调。实际项目中提示词模板迭代数十版属于常态,每版通常在批量测试后才会暴露问题。

模型对接。 不同模型的API调用方式、输入格式、输出格式、思维链处理都不一样。自研意味着要自己处理这些差异:在线API和本地部署(Ollama/vLLM)的接口适配、流式响应的解析、JSON格式不稳定时的兼容处理、思维链的提取和过滤。

隐性成本

异常处理的工程量。 框架跑起来之后会持续遇到异常:截图时页面未加载完成、模型返回动作格式错误、坐标偏移点到相邻元素、弹窗打断操作流程、网络波动导致API超时、设备离线导致ADB断连。实测数据显示,框架中约30%的代码在处理异常和边界情况,正常流程的代码占比反而更小。

调试Agent跑偏的投入。 Agent跑偏属于高频问题。自研框架没有现成的调试工具,需要逐条分析日志、追踪Agent每一步的决策路径、定位跑偏原因。其中一类情况特别耗费精力:Agent的行为跟预期不一致但逻辑自洽,无法直接判定为缺陷,需要设计专门的测试用例来确认。

持续维护的精力。 模型在更新(API变更、返回格式变更、能力变化),框架在迭代(新功能、新异常、新场景),依赖库在升级。自研意味着这些全要自行跟进。自研框架长期不维护会导致兼容性劣化,严重时无法正常运行。

什么时候自研是合理选择

条件
说明
有明确且深度的定制需求
开源框架的能力结构满足不了(特殊设备控制、特殊断言逻辑、多模型协同)
团队有足够技术储备
Python+异步编程+LLM API调用+测试框架经验,至少2人具备这些能力
长期投入的决心
持续迭代、作为基础设施建设
安全合规硬约束
数据必须本地部署,不能出内网;需要过安全审计
多场景/多客户交付
定制需求多、变化快,开源框架的约束成为负担

04 场景匹配:不同场景到底该选哪条路

不是所有项目都适合同一条路线。以下按五个典型场景分析。

场景A:小团队功能验收(3人以下,1人能写代码)

特征:SaaS产品每周发版,发版前手动回归核心流程。需求是AI帮忙跑主流程,省人力。

推荐路线:开源框架直接用。

理由:需求明确(核心流程冒烟测试),步骤固定,不需要复杂异常处理。开源框架装好、配好API Key、写几条测试步骤就能跑。省下来的时间应该去验证业务价值,而不是搭框架。

注意点:这个阶段不宜在框架层面过度投入,目标是验证效果而非构建架构。等跑顺了、发现框架满足不了的时候,再考虑二次开发。

场景B:中型团队持续回归(5-10人,2-3人能写代码)

特征:产品迭代频繁,200+条用例需回归,弹窗类型多,设备种类多,传统自动化维护成本太高。

推荐路线:基于开源框架二次开发。

理由:场景有定制需求(特定弹窗规则、跨设备适配、业务级断言),纯开源满足不了;但团队规模有限,从零自研投入过大。二次开发能在开源底座上快速补上业务定制层。

二次开发的重点投入方向:

  • 提示词层:加入业务上下文和执行约束,投入产出比最高
  • 弹窗处理层:补充业务特定的弹窗规则
  • 验证层:加文本分析模型做交叉验证,降低视觉断言误报

场景C:多客户/多业务线交付(10人以上,5人以上能写代码)

特征:给不同客户提供AI测试服务,每个客户的APP不同、测试需求不同、安全要求不同。有的要本地部署模型,有的要对接特定缺陷管理系统,有的需要多Agent并行执行。

推荐路线:自研核心框架+开源组件。

理由:定制需求多、变化快,开源框架的约束成为负担。但并非全部自研——设备控制用Airtest、OCR用PaddleOCR、本地模型推理用Ollama,成熟的开源组件直接用,避免重复造轮子。自研的是Agent调度层、任务编排层、多租户配置层这些业务逻辑。

场景D:合规敏感行业(金融/政务/军工)

特征:数据不能出内网,所有模型必须本地部署,操作日志要可审计,特定操作需要二次确认。

推荐路线:自研为主,开源组件按需集成。

理由:合规约束是硬性的,开源框架在安全审计层面的专门设计较少。即使框架本身开源可审计,其依赖链(模型调用、数据传输、日志格式)是否满足合规要求也需要逐一验证。从架构设计阶段就把合规要求内建进去,成本更低、风险更可控。

关键设计点:模型推理全部走本地(Ollama/vLLM部署)、敏感数据脱敏在Agent层面强制执行、操作日志结构化记录支持审计回溯、二次确认机制在执行层硬编码。

场景E:研究型团队/技术预研

特征:不做生产级交付,目标是验证新方法、新模型、新架构的可行性。比如探索多Agent协同测试、RAG增强测试知识库、视觉自愈能力等前沿方向。

推荐路线:开源框架快速验证+关键模块自研。

理由:研究型工作需要快速迭代,开源框架提供基础设施让团队聚焦在创新点上。但创新部分(比如新的记忆架构、新的断言策略)需要自研,开源框架无法提供参考实现。


05 演进路径:从开源走向深度定制是大概率事件

选了开源,后续是否一定会走向自研?结论是:未必走向纯自研,但走向深度定制是大概率事件。

演进的触发信号

从开源起步的团队,出现以下信号时说明纯开源已经不够用了:

信号一:补丁代码量接近原框架代码量。 这意味着框架外部叠加的定制逻辑已经跟框架本身同等复杂,维护两套逻辑的成本高于维护一套。

信号二:提示词优化到某个点后效果不再提升。 通用提示词在业务场景下优化到一定阶段后,继续调整提示词已经无法带来显著提升。此时的瓶颈往往在框架架构层面——比如动作解析方式限制了指令设计空间、上下文管理方式限制了信息传递效率。

信号三:同类异常反复出现,框架层面无法根治。 业务弹窗框架处理不了,每次在外部叠加补丁逻辑,补丁之间可能互相影响。这是架构层面的局限,局部修补无法解决。

信号四:需要多模型协同,但框架只支持单模型。 当前行业趋势是"专用模型做专用事"——Agent执行用一个模型、视觉验证用另一个模型、文本分析用第三个模型。如果框架在架构上不支持多模型协同,你要么放弃这个能力,要么大改框架。

三条演进路线

路线一:开源→二次开发→持续二次开发(最常见)

保留框架核心组件(Agent Loop、设备控制层、动作解析层),在业务相关层做持续定制。这是性价比最高的路线,也是多数团队实际走的路线。

关键原则:将定制代码隔离。 建立独立目录或模块,所有定制代码放在其中,与框架原版代码保持清晰边界。上游框架更新时可选择性地合入,避免被更新牵着走。

风险点:框架大版本升级(如v1到v2)且架构有变化时,定制代码可能需要大幅调整。此风险无法完全消除,但可通过控制定制范围来降低——只改必须改的层,不碰框架核心。

路线二:开源→二次开发→自研核心框架(中度演进)

当二次开发的代码量超过框架原版的50%以上,且修改框架代码的难度已超过编写新代码时,可考虑自研核心框架。这里的"自研核心框架"并非从零开始,而是将开源框架中积累的理解、已知的边界、调优过的提示词,沉淀到更贴合业务的架构中。

触发条件:团队对框架的理解深度已超过框架作者对特定业务的理解深度。

路线三:开源→开源→换开源(横向切换)

演进路径不限于纵向深化。当前框架的架构约束过强但需求尚未达到自研程度时,切换到更灵活的开源框架可能是更合理的选择。

比如从云端推理派框架切换到本地执行派框架,获得对设备控制层和模型调用层的完全掌控;或者从单一Agent框架切换到支持多Agent协同的框架,获得更灵活的任务编排能力。

切换成本取决于定制代码与框架的耦合程度。遵循"定制代码隔离"原则的情况下,切换时只需重新适配接口层,核心业务逻辑可复用。

实际演进模式

项目中的演进很少是纯线性的,更常见的模式:

  1. 开源框架起步(2-4周跑通)
  2. 发现边界,开始二次开发(持续1-3个月)
  3. 二次开发到一定程度,评估是否需要自研核心层
  4. 如果自研,用开源框架作为参照和基线,逐步替换核心组件
  5. 自研核心框架稳定后,开源组件仍然在使用(Airtest、PaddleOCR等)

这个过程中,不同阶段获得的价值也不同:

  • 开源阶段:获得基线能力和快速验证
  • 二次开发阶段:获得业务适配能力和深度理解
  • 自研阶段:获得架构掌控力和演进自主权

06 二次开发的技术边界:改哪些层,不动哪些层

二次开发是多数团队最终到达的位置。技术上存在明确的分界线。

值得改的层

提示词层——投入产出比最高。通用提示词缺少业务上下文,Agent不知道在测什么APP、页面上应该有什么元素、哪些操作不可逆。补上这些信息,同样的Agent Loop,执行效果差距可达20-30%。

动作扩展层。在框架预定义动作之外加自定义动作:读取短信验证码、切换WiFi开关、截取特定区域做OCR验证。只要符合框架的动作格式规范就能接入,不需要改解析逻辑。

验证层。加文本分析模型做交叉验证——视觉模型看截图判断界面状态,文本模型分析执行结果描述是否语义匹配。两种验证互补,漏判概率显著降低。

弹窗处理层。补充业务特定的弹窗规则,每条规则包含触发文字、操作文字、置信度阈值和操作后等待时间。这些规则跟通用规则并行运行。

不要动的层

Agent Loop主循环。感知→决策→执行→判断的循环设计已经过充分验证,退出条件、步数保护、上下文管理逻辑无需重写。修改主循环容易引入新的问题。

模型调用封装。框架的模型调用层通常已处理流式响应解析、超时重试、错误处理。换模型只需改配置参数,重写调用层会丢失已验证的容错逻辑——实践中曾出现重写后遗漏超时重试逻辑,导致Agent在API超时场景下无限等待的问题。

动作解析层。结构化指令的解析逻辑是框架的骨架。加新动作可在现有解析逻辑中增加分支,但不应修改解析规则本身。


07 行业趋势:"开源vs自研"二元框架正在失效

2026年的行业趋势正在使"开源vs自研"的二元选型框架逐渐不合时宜。三个方向值得重点关注:

趋势一:协议层标准化

MCP(Model Context Protocol,Anthropic 2024年底提出)正在成为Agent调用外部工具的事实标准。它统一了工具接入的接口规范——只要工具实现了MCP Server,就能被任何支持MCP的Agent发现和调用。

这意味着"自研"的颗粒度变细了。以往自研意味着从Agent Loop到设备控制全自行编写,现在可以自研MCP Server暴露测试能力,然后让任何Agent框架来调用。自研的重点从"造框架"转向"造工具"。

据微软Build 2026大会发布的信息,开源评估标准和运行时控制协议正在推进标准化,目标是让Agent的可信评估和可控执行不依赖特定框架。这进一步削弱了"选框架"的权重——框架可替换,能力和协议才是团队的核心资产。

趋势二:专用模型分化

当前行业正在走向"专用模型做专用事"的多模型协同模式:Agent执行用一个模型、视觉验证用另一个模型、文本分析用第三个模型。据CSDN上的实测数据,多模型协同方案的断言准确率比单模型方案高10-15个百分点。

这个趋势对选型的影响是:框架是否支持多模型协同,正在成为新的分水岭。 不支持多模型协同的框架,能力天花板会更早到来。

趋势三:Agent能力评测走向专业化

AgentBench、WebArena、SWE-bench等评测基准正在从学术走向工程。据清华大学CoAI实验室的评测数据,当前主流Agent框架在标准测试集上的任务完成度差异很大(从45%到85%不等),但这个数据不能直接等同于"在你的业务上表现如何"。

评测标准化的意义在于:无需依赖框架的README或GitHub Star数做判断,而是可以用标准化评测集对方案做基线测试,用数据驱动选型决策。


08 选型决策框架

五维度评估

维度
适合开源起步
适合自研起步
团队技术能力
Python基础,能改脚本但不熟悉Agent架构
有Agent开发经验,熟悉LLM API和异步编程
定制需求强度
通用UI测试,标准操作流程
特殊设备控制、特殊断言逻辑、多模型协同
时间预期
2-4周内要看到效果
可以接受2-3个月的建设期
维护投入
有专人但不充裕
有持续迭代的精力,框架本身也是产品
安全合规
数据可以走公网API
数据必须本地部署,不能出内网

一个实用的判断方法

将计划实现的AI测试能力逐项列出,标注每项是通用能力还是业务特有能力。通用能力占比超过70%,开源起步;特有能力占比超过30%,认真考虑自研或二次开发。

还有一个易忽略的维度:维护责任的归属。 开源框架出问题可以查issue、看文档、等社区修复。自研框架出问题只能自行排查和修复。如果团队中只有一个人能维护自研框架,人员变动会直接影响框架的可持续性。

演进规划

选型应视为路线规划而非一次性决策:

  1. 起步
    :开源框架直接用,快速验证可行性(2-4周)
  2. 遇到边界
    :在开源基础上做二次开发,补上业务定制层(1-3个月)
  3. 定制需求超过框架承载力
    :自研核心框架+开源组件

这三个阶段不要求严格按序执行,但多数团队的实际路径确实是从左到右逐步演进。关键是在每个阶段选对路线,不提前投入也不滞后修补。

起步阶段的目标是跑通验证,迭代优化在跑通之后。两个阶段的顺序不应颠倒。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-24 20:17:08 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/792634.html
  2. 运行时间 : 0.202351s [ 吞吐率:4.94req/s ] 内存消耗:4,671.01kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0dab3e4bc17b2625897dc9ea927e18e8
  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.000572s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000784s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000367s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000317s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000513s ]
  6. SELECT * FROM `set` [ RunTime:0.000263s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000567s ]
  8. SELECT * FROM `article` WHERE `id` = 792634 LIMIT 1 [ RunTime:0.000503s ]
  9. UPDATE `article` SET `lasttime` = 1782303428 WHERE `id` = 792634 [ RunTime:0.004899s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000306s ]
  11. SELECT * FROM `article` WHERE `id` < 792634 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000486s ]
  12. SELECT * FROM `article` WHERE `id` > 792634 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000475s ]
  13. SELECT * FROM `article` WHERE `id` < 792634 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001215s ]
  14. SELECT * FROM `article` WHERE `id` < 792634 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000638s ]
  15. SELECT * FROM `article` WHERE `id` < 792634 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000701s ]
0.204653s