跳到主要内容

固定和模拟数据

开发工作流时,可能希望测试逻辑,而不反复调用外部系统或处理实时数据。n8n 提供两项相关功能:

  • 数据模拟:无需连接真实数据源,即可创建或模拟测试数据
  • 数据固定:保存模拟或真实测试数据,在后续工作流执行中复用,代替获取新数据

这两种方式都能节省开发时间和资源,让测试使用一致的数据集,并避免对线上系统重复发起测试调用。

信息

仅用于开发

数据固定和模拟用于开发期间测试工作流。生产工作流执行不支持数据固定。

数据模拟方式 ​

可以通过多种方式创建开发期间使用的测试数据:

使用 Code 或 Edit Fields 节点生成自定义数据 ​

可以通过 Code 节点或 Edit Fields (Set) 节点在工作流中创建自定义数据集。

在 Code 节点中,可以创建任意数据集并作为节点输出返回。在 Edit Fields 节点中,选择 Add fields(添加字段) 加入自定义数据。

小规模测试适合使用 Edit Fields 节点,复杂数据集则使用 Code 节点。

适用场景:需要完全控制测试数据的结构和值,或希望用特定数据模式测试边界情况。

通过 Customer Datastore 节点输出示例数据集 ​

Customer Datastore 节点提供虚构数据集。添加并执行节点,即可查看数据。

适用场景:探索 n8n 时需要测试数据,但还没有真实使用场景。

创建或获取希望在多次工作流执行中复用的测试数据后,使用数据固定保存,以保持测试一致。

数据固定 ​

开发工作流时可以“固定”数据,即保存节点输出,并在后续执行中使用保存的数据,代替获取新数据。

处理外部数据源时,可以借此避免反复请求外部系统,节省时间和资源:

  • 工作流依赖外部系统触发时,例如 Webhook 调用,固定数据可以避免每次测试都再次操作外部系统。
  • 外部资源有数据量或使用量限制时,固定测试数据可以避免消耗配额。
  • 获取并固定所需测试数据,确保各次工作流测试的数据一致。
  • 通过上述方式模拟测试数据,再固定以便多次执行复用。

只能为具有单个主输出的节点固定数据,此处不计“error”错误输出。

固定数据 ​

在节点中固定数据的步骤如下:

  1. 运行节点,加载数据。
  2. 在 OUTPUT(输出) 视图中选择 Pin data(固定数据) 固定数据图标。固定生效后,按钮会被禁用,输出视图显示“This data is pinned(数据已固定)”横幅。
信息

输出二进制数据的节点

输出中包含二进制数据时,不能固定数据。

取消固定 ​

数据固定后,节点输出面板顶部会出现提示横幅。要取消固定,并在下次执行时获取新数据,选择横幅中的 Unpin(取消固定) 链接。

编辑固定数据 ​

n8n 支持编辑固定数据。无需在外部系统中逐一搭建场景并发送对应数据,就能检查不同情况,更方便测试边界条件。

信息

仅用于开发

生产工作流执行不支持数据编辑,此功能用于开发期间测试工作流。

编辑输出数据 ​

编辑输出数据的步骤如下:

  1. 运行节点,加载数据。
  2. 在 OUTPUT(输出) 视图中选择 JSON,切换到 JSON 视图。
  3. 选择 Edit(编辑) 编辑数据图标。
  4. 编辑数据。
  5. 选择 Save(保存)。n8n 会保存更改并固定数据。

使用以往执行的数据 ​

可以复制以往工作流执行中的节点数据:

  1. 打开左侧菜单。
  2. 选择 Executions(执行)。
  3. 浏览工作流执行列表,找到包含所需数据的执行。
  4. 选择 Open Past Execution(打开以往执行) 打开以往执行图标。
  5. 双击要复制数据的节点。
  6. 如果当前是表格布局,选择 JSON 切换视图。
  7. 有两种复制 JSON 的方式:
  8. 像选择文本一样,高亮选中所需 JSON,再按 ctrl + c 复制。
  9. 点击参数,选中要复制的 JSON,然后: 1. 将鼠标悬停在 JSON 上,n8n 会显示 Copy(复制) 复制数据图标 按钮。 2. 选择 Copy(复制) 复制数据图标。 3. 选择复制内容:
    • Copy Item Path(复制数据项路径) 和 Copy Parameter Path(复制参数路径) 会生成访问部分 JSON 的表达式。
    • Copy Value(复制值):复制所选 JSON 的完整内容。
  10. 返回正在编辑的工作流:
    1. 打开左侧菜单。
    2. 选择 Workflows(工作流)。
    3. 选择 Open(打开)。
    4. 选择要打开的工作流。
  11. 打开需要使用复制数据的节点。
  12. 如果没有数据,运行节点以加载数据。
  13. 在 OUTPUT(输出) 视图中选择 JSON,切换视图。
  14. 选择 Edit(编辑) 编辑数据图标。
  15. 粘贴以往执行的数据。
  16. 选择 Save(保存),n8n 会保存更改并固定数据。

结合模拟与固定 ​

要获得更贴近实际的测试体验,可以结合两种方式:

  1. 通过 Code、Edit Fields 或 Customer Datastore 节点创建测试数据
  2. 编辑测试数据,构建特定场景或边界情况
  3. 固定编辑后的数据,供多次工作流执行复用
  4. 使用这份编辑并固定的数据集继续开发

这样既能完全控制测试数据,又能确保多次运行中的测试一致。

相关资源 ​

本文为社区中文翻译。查看对应英文原文