Skip to Content
帮助文档发布与运维排查应用问题

排查应用问题

排查的目标不是让错误暂时消失,而是确定问题发生在哪一层,并找到能够被验证的原因。开始修改前,先记录现象和运行环境;每次只验证一个可能原因,避免多个改动互相干扰。

明确问题

先把模糊的现象整理成可以复现的问题。至少记录:

  • 预期结果:正常情况下应该发生什么。
  • 实际结果:页面表现、错误消息或错误数据是什么。
  • 复现步骤:从哪个页面开始,依次执行哪些操作。
  • 发生范围:所有用户还是特定用户,所有数据还是特定记录。
  • 运行环境:网页或微信小程序、设备、浏览器和账号状态。
  • 发生时间:后续用于定位请求和运行日志。
  • 最近变更:问题出现前修改过什么,相关配置是否已经同步或发布。

尽量缩短复现路径。例如,不要只记录“订单功能不能用”,而应记录“普通用户在订单详情页点击确认收货后,按钮进入加载状态,但订单状态没有改变”。

如果问题只在特定用户、数据或环境下出现,应保留这些条件。为了让问题看起来更简单而更换账号或测试数据,可能会同时移除真正的触发条件。

定位失败环节

按照一次操作的执行链路,从前到后检查:

  1. 编辑器配置是否有效。
  2. 页面是否正确显示并响应操作。
  3. 前端是否发出正确请求,以及服务器返回了什么。
  4. 请求进入后端后如何执行。
  5. 页面是否正确使用后端结果。

找到第一个偏离预期的位置后,再围绕该位置检查原因,不需要同时检查所有工具。

检查编辑器配置

编辑器右上角的错误图标会显示当前配置错误的数量。点击错误项可以定位到相关配置。先处理编辑器已经发现的问题,再继续运行应用。

重点检查:

  • 参数或数据绑定的类型是否匹配。
  • 必填配置是否为空。
  • 数据源、页面参数或组件引用是否已经失效。
  • 触发器、行为或行为流节点是否缺少必要入参。
  • 条件是否覆盖所有数据情况,并包含推荐的兜底分支。

具体错误信息参阅错误参考

检查页面和交互

如果页面未按预期显示,或者操作后没有产生请求,检查:

  • 组件是否处于可见、可交互状态。
  • 触发器是否绑定到正确的组件和事件。
  • 条件视图是否进入预期分支。
  • 页面数据源、页面参数和客户端变量是否具有预期值。
  • 组件使用的是绝对位置还是相对位置。
  • 父组件尺寸、排列方向、对齐方式和溢出设置是否正确。

网页端可以使用浏览器开发者工具的 Elements 检查实际尺寸和样式,使用 Console 查看前端错误。如果点击后没有产生预期请求,问题通常仍在页面配置、触发器或前端行为中。

检查网络请求

确认操作应该产生请求后,按 F12 或右键选择检查,再打开 Network。清空已有记录,重新执行一次问题操作,并选择对应请求。

在浏览器 Network 中定位 Zion 请求

依次回答三个问题:

  1. 请求是否发出:没有请求时,返回检查页面触发器和行为配置。
  2. 请求内容是否正确:检查 Request Payload 中的参数、类型和值是否与编辑器绑定一致。
  3. 服务器返回了什么:检查 HTTP 状态、Response 数据以及 errors 中的具体信息。
位置检查内容
Request Payload请求参数是否完整,类型和值是否符合绑定配置
Headers请求地址、请求方式和身份信息是否符合预期;分享时不要暴露令牌
Status请求是否到达服务器,HTTP 状态是否异常
Response返回数据是否符合预期,是否包含错误分类或具体消息

如果响应中包含明确错误,先查询错误参考。请求已经到达后端,但执行结果不符合预期时,继续检查运行日志。

微信小程序:在右上角菜单中选择开发调试 → 开启 vConsole。重新执行问题操作,再在 Network 中查看请求和返回结果。

在微信小程序 vConsole 中查看请求在微信小程序 vConsole 中查看请求结果

检查后端执行

请求涉及行为流、数据库、API、AI 智能体或触发器时,在运行日志中选择对应分类,并使用问题发生时间和已知字段缩小范围。

检查:

  • 行为流或触发器是否开始执行。
  • 执行停在哪个节点。
  • 节点的输入和输出是否符合预期。
  • 数据库、API 或 AI 智能体在哪一步返回错误。
  • 同一 traceId 下的日志是否形成完整执行过程。

找到相关日志后,复制 traceId 并查询同一次请求产生的其他日志,再按时间检查输入、输出、状态和错误。分类、查询语法和完整跟踪流程参阅查看运行日志

检查实时数据更新

数据源使用实时订阅但页面没有更新时,按以下顺序检查:

  1. 确认目标数据实际发生了变化。
  2. 确认数据源使用实时订阅,而不是普通查询。
  3. 在浏览器 Network 中选择 WS,刷新或重新进入相关页面。
  4. 确认存在持续连接的 WebSocket 请求。
  5. 打开连接的 Messages,观察数据变化时是否收到新消息或错误。
  6. 没有消息时,检查数据源筛选条件和当前用户权限。
  7. 已收到新数据但页面没有更新时,检查组件绑定和条件配置。

这里只根据浏览器可见的连接状态和消息判断问题。某个内部连接名称或心跳消息本身不能证明根因。

验证修复

根据已经收集的证据提出一个明确假设,例如“请求参数为空是因为页面参数没有传入”,然后进行最小修改。

  1. 每次只修改一个可能原因。
  2. 使用完全相同的账号、数据和操作步骤重新测试。
  3. 确认原错误消失,并检查页面、请求和后端结果是否都符合预期。
  4. 测试相邻情况,例如不同角色、空数据和边界值,避免只修复单一记录。
  5. 确认测试环境使用最新配置:后端配置修改后执行同步变更发布;前端页面修改后执行发布

如果结果没有改变,撤销无效假设带来的修改,保留新证据,再检查下一个可能原因。“页面不再报错”不能单独证明问题已经修复。

请求进一步协助

使用 AI 小助手

收集到现象、错误信息或 traceId 后,可以在编辑器中打开 AI 小助手,并提供:

  • 预期结果、实际结果和复现步骤。
  • 问题发生时间和运行环境。
  • 项目 ID,以及相关页面或组件 ID。
  • 已经完成的排查。
  • 错误信息或 traceId

在 Zion 编辑器中打开 AI 小助手

AI 小助手可以读取相关日志并辅助分析问题。如果分析结果指向平台缺陷,可以通过小助手提交缺陷。提交前仍应检查自动整理的复现信息,并移除不应共享的敏感数据。

提交可复现的问题

自行排查后仍无法定位时,向技术支持提供:

  1. 预期结果:正常情况下应该发生什么。
  2. 实际结果:页面表现、错误消息和错误位置。
  3. 复现步骤:从哪个页面开始,依次执行哪些操作。
  4. 运行环境:网页或微信小程序、设备、浏览器和账号状态。
  5. 定位信息:项目 ID、页面或组件 ID、问题发生时间。
  6. 排查记录:已经检查和尝试过的内容。
  7. 证据:脱敏后的截图、请求信息、日志和 traceId
⚠️

请求和日志可能包含身份令牌、密钥、用户数据及其他敏感信息。提交截图或日志前必须先完成脱敏。

可以在 Zion 官方社区提交问题。信息应足以让其他人在相同条件下复现,而不只是“页面出错了”或“请求失败了”。

Last updated on