乐于分享
好东西不私藏

AI驱动 + agent-device :重塑移动端UI自动化测试的全新范式

AI驱动 + agent-device :重塑移动端UI自动化测试的全新范式

前言

上一篇文章,我们分享了基于 Claude Code + Playwright CLI 实现 Web 端 UI 自动化测试的方案。核心思路是"AI 做一次学习,脚本做重复执行",用双层引擎把 Token 消耗降到最低。

这次,我们把目光转向移动端。很多测试团队的实际业务场景是:用例写在 XMind 或 Markdown 里,需要真机或模拟器上跑 Android App,手工点一遍又一遍,效率低、容易漏。

围绕这个痛点,我们基于 Claude Code + agent-device  做了一套移动端 UI 测试自动执行方案。方案继承了 Web 端的核心理念,同时针对移动端的特殊性(ADB 连接、中文输入、系统弹窗等)做了大量适配。

一、整体架构:用例 → Skill → 设备操作

整个方案的架构和 Web 端一脉相承:

用例层 — 测试用例放在 Markdown 文件里,用自然语言写操作步骤和预期结果。支持 XMind 打星标一键导出为 Markdown 用例。

调度层 — 一个叫 app-run-test-suite 的 Skill(Claude Code 自定义指令),负责解析用例、调度执行、生成报告。支持单条跑、批量跑、XMind 导入后自动跑。

执行层 — 核心引擎。通过 agent-device 驱动 Android 设备,LLM 逐步操作:每步先截图分析页面 → 找到目标元素 → 执行操作 → 验证结果。

二、agent-device :移动端操控底座

底层设备驱动我们选的是 agent-device,一个专门为 AI Agent 设计的 Android 设备操控工具。主要看重几点:

  • 语义定位器(find) — 不用写 XPath 或 resource-id,直接用自然语言找元素:find text "登录" clickfind label "用户名" fill "admin"
  • 快照机制 — snapshot -i 获取当前屏幕所有可交互元素,带 @eN 引用,AI 看一眼就知道页面上有什么
  • 断言验证(is) — is visible 'text="登录成功"' 验证元素状态,断言失败直接返回非零退出码
  • 全操作覆盖 — 点击、输入、滚动、长按、滑动、截图、系统弹窗处理、剪贴板操作……手工测试能做的它都能做

安装一行命令:

npm install -g agent-device

三、执行流程:五步闭环

整个执行流程分为五步,每一步都有明确的输入输出:

第一步:用例解析与准备

支持三种模式:

  • 单条执行:传入具体用例文件,只跑这一条
  • 批量执行:传入用例目录,读取用例列表后逐条跑
  • XMind 导入:无参数时自动检测 .xmind 文件,解析生成用例后再执行(如图有带有⭐的用例)

解析完成后,系统会显示执行计划,标注哪些用例有之前执行成功的精简步骤(_refined.md),优先使用精简版本。

第二步:环境检查与启动

这一步确保设备和应用都就绪:

  1. 检查 agent-device 是否已安装
  2. 启动 ADB 守护进程(减少 Windows 下弹窗干扰)
  3. 连接 ADB 设备(真机 USB 或模拟器 adb connect 127.0.0.1:7555
  4. 关闭系统动画(关键!Android UI 动画会导致快照超时)
  5. 关闭残留会话,启动目标应用

环境检查通过后显示就绪信息,包含 agent-device 版本、设备序列号、应用包名等,一目了然。

第三步:LLM 逐步执行(核心)

这是整个方案最复杂的部分。每条用例的执行流程:

  1. 快照分析 — snapshot -i 获取当前屏幕交互元素
  2. 智能元素定位 — 根据"智能引用解析规则"分析快照,找到实际要操作的元素
  3. 执行操作 — 用 find 语义定位器或 @eN 引用操作元素
  4. 验证预期结果 — 用 is 断言命令验证页面状态
  5. 持久化结果 — 写入 JSON 结果文件 + 生成精简步骤文件

其中,"智能引用解析规则"是一个非常关键的设计。举个最常见的例子:

页面上的输入框通常有一个标签(如"用户名")紧挨着一个输入框。快照里长这样:

@e24 [group] "用户名"@e25 [text-field] "" [editable]

AI 看到"用户名"标签后,知道要操作的是紧邻的 @e25 这个 text-field,而不是标签本身。这个规则覆盖了标签+输入框、标签+按钮、标签+开关、标签+下拉框等几乎所有常见 UI 组合模式。

第四步:生成 HTML 报告

所有用例跑完后,调用报告脚本合并所有 JSON 结果:

python generate_html_report.py --merge "reports" --save-json

生成的 HTML 报告截图内嵌(base64),不依赖外部资源,打开就能看。每条用例的每步操作截图、预期结果和实际结果对比都一目了然。

第五步:输出控制台总结

跑完直接在终端看到结果:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  测试执行完毕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  总计: 5 条  通过: 3 条  失败: 1 条  错误: 1 条  通过率: 60.0%  总耗时: 5m 12s━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  HTML报告: reports/test-report-2026-05-18.html━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

四、快照缓存策略:减少冗余操作

移动端快照(snapshot -i)是 IO 密集操作,每步都执行会拖慢速度。方案设计了"快照缓存策略":

核心原则:只有纯文本输入(fill/type)和收起键盘后可以复用缓存,其他所有操作后都重新快照。

举个例子:

步骤1:snapshot -i(首次获取缓存)步骤2:fill 姓名 "张三" → 缓存仍有效步骤3:fill 电话 "13800138000" → 缓存仍有效(复用)步骤4:fill 地址 "北京市" → 缓存仍有效(复用)步骤5:click "提交" → 缓存失效(点击操作改变了页面)步骤6:snapshot -i(重新获取)→ 新缓存

一个表单页面,6 步只需要 2 次快照,而不是 6 次。

五、移动端特殊处理

移动端测试和 Web 端有不少差异,方案做了针对性适配:

中文输入问题 — Android 上 fill 和 type 输入中文可能报 NullPointerException。替代方案:如果目标文本在列表中可见,直接 find text "中文" click 选中;否则通过 ADB clipboard 设置剪贴板再粘贴。

系统弹窗处理 — 权限弹窗、系统对话框等,用 agent-device alert get 查看、alert accept 接受、alert dismiss 拒绝,不用手动处理。

智能等待 — 不盲目 sleep。页面跳转后用 find "目标文本" wait 5000 等待元素出现,比固定 sleep 更可靠也更快。

分级重读策略 — 批量执行时,每 5 条用例重读一次 Skill 指令文件,遇到异常也重读,防止长期任务中 AI "忘记"执行规范。

15 分钟超时熔断 — 单条用例执行超过 15 分钟自动终止,标记为失败,继续跑下一条。实际测试中,正常用例一般 1-3 分钟就能跑完,15 分钟基本意味着卡死了(比如页面白屏、弹窗阻塞、网络异常等),这时候及时止损比硬等更合理。每条用例的耗时都会精确记录(Unix 时间戳计算,不使用估算值),写进 JSON 结果文件里。

截图策略 — 不在每一步都截图,只在验证预期结果时截图(作为证据)和步骤失败时截图(用于排查)。普通操作步骤不截图,减少 IO 开销。

六、异常处理:8 种常见问题都有预案

实际跑设备测试,总会遇到各种意外。方案对 8 种常见异常都做了明确处理策略:

  1. 用例文件不存在 → 跳过,标记 ERROR
  2. 用例格式错误 → 跳过,标记 ERROR
  3. agent-device 命令失败 → 记录错误,继续后续步骤
  4. 页面加载超时 → sleep 5 后重试一次,仍失败则 FAIL
  5. 设备无响应 → 检查 ADB 连接状态,尝试重连恢复
  6. UI 快照超时 → 确认已关闭系统动画,sleep 2 后重试
  7. 中文输入失败 → 回退到 ADB clipboard 方案
  8. find 定位器失效 → 立即重新快照分析屏幕结构

核心原则:某条用例失败不影响后续用例执行,每条用例的结果独立持久化。

七、精简步骤(_refined.md):越跑越聪明

和 Web 端方案类似,移动端也设计了"精简步骤"机制:

首次执行:AI 逐步摸索,快照分析、定位元素、执行操作,同时记录成功路径。

执行成功后:自动生成 _refined.md 文件,只记录"操作意图"(做什么),不记录定位方式(怎么找元素)。比如:

### 步骤 1:打开应用### 步骤 2:输入账号 15800336655### 步骤 3:输入密码 abc123### 步骤 4:勾选"已阅读并同意"### 步骤 5:点击登录

下次执行同一条用例:如果 _refined.md 存在,优先使用它作为执行参考。AI 不需要重新摸索,直接按步骤执行。

失败不覆盖:如果某次执行失败,不会覆盖之前成功的精简步骤。已有的 _refined.md 保持不动。

八、总结与展望

本方案基于 Claude Code Skill 机制 + agent-device,实现了从测试用例(Markdown/XMind)到 Android 设备自动化执行的完整闭环。核心亮点包括:自然语言用例驱动、语义定位器操作设备、智能引用解析、快照缓存优化、精简步骤自我进化、HTML 可视化报告。

和之前 Web 端方案搭配使用,基本覆盖了 Web + App 双端的 UI 自动化测试需求。

这个方案还有几个方向可以继续深入:

  1. iOS 支持 — 目前只覆盖了 Android 端,下版本计划扩展到 iOS
  2. 用例生成与执行彻底串联 — AI 生成用例 → 自动执行 → 自动出报告,整条链路零人工干预
  3. 设备农场 — 多设备并行执行,进一步缩短回归测试时间

-END-

👇关注我的公众号👇

扫描下方二维码领取源码资料

欢迎加V相互交流学习

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-27 20:35:26 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/664870.html
  2. 运行时间 : 0.114358s [ 吞吐率:8.74req/s ] 内存消耗:4,658.95kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8551618b8c9940ec730159795714716e
  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.000575s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000817s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000327s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000290s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000484s ]
  6. SELECT * FROM `set` [ RunTime:0.000192s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000599s ]
  8. SELECT * FROM `article` WHERE `id` = 664870 LIMIT 1 [ RunTime:0.000655s ]
  9. UPDATE `article` SET `lasttime` = 1779885326 WHERE `id` = 664870 [ RunTime:0.001396s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000815s ]
  11. SELECT * FROM `article` WHERE `id` < 664870 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001196s ]
  12. SELECT * FROM `article` WHERE `id` > 664870 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000943s ]
  13. SELECT * FROM `article` WHERE `id` < 664870 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001893s ]
  14. SELECT * FROM `article` WHERE `id` < 664870 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002199s ]
  15. SELECT * FROM `article` WHERE `id` < 664870 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003039s ]
0.118290s