You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wiremock独立版:如何让响应与Webhook使用同一随机UUID值?

解决Wiremock响应与Webhook复用同一随机UUID的问题

你的问题出在{{randomValue type='UUID'}}会在每个调用位置独立生成值,所以响应和Webhook会得到不同的UUID。要实现同一请求中复用相同UUID,可通过Wiremock的**场景(Scenarios)**功能存储生成的UUID,再在两处引用这个变量。

修改后的配置示例

{
  "priority": 1,
  "scenarioName": "GENERATE_SHARED_UUID",
  "requiredScenarioState": "START",
  "newScenarioState": "UUID_GENERATED",
  "request": {
    "method": "POST",
    "urlPath": "/v1/businesses"
  },
  "response": {
    "status": 200,
    "jsonBody": {
      "id": "{{#setScenarioState scenarioName='GENERATE_SHARED_UUID' variables=(map 'uuid' (randomValue type='UUID'))}}{{/setScenarioState}}{{scenarioVariable 'uuid'}}"
    }
  },
  "serveEventListeners": [
    {
      "name": "webhook",
      "parameters": {
        "method": "POST",
        "url": "http://some-url/",
        "headers": {
          "Content-Type": "application/json"
        },
        "body": "{\"id\": \"{{scenarioVariable 'uuid'}}\"}"
      }
    }
  ]
}

配置说明

  • 场景定义:通过scenarioName创建场景,requiredScenarioState设为初始状态START,每次请求后切换到UUID_GENERATED,确保每次请求都会重新生成UUID。
  • UUID生成与存储:在响应的id字段中,先通过{{setScenarioState}}生成UUID并存入场景变量uuid,再用{{scenarioVariable 'uuid'}}输出这个值。
  • Webhook复用变量:Webhook的body中直接引用场景变量{{scenarioVariable 'uuid'}},就能拿到和响应中相同的UUID。

注意事项

  • 确保Wiremock 3.4.2支持场景变量的模板语法,该功能在Wiremock 2.27+已稳定支持。
  • 并发请求时,场景状态会按请求上下文隔离,各自的UUID不会互相干扰。

内容的提问来源于stack exchange,提问作者Nizan Stein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:16:23