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

如何为Wiremock 2.33.2端点配置随机返回的status状态码?

解决Wiremock 2.33.2随机返回状态码的问题

直接在JSON映射中嵌入{{pickRandom}}模板语法会导致JSON格式无效,包裹成字符串后又会被Wiremock识别为非整数类型,无法直接生效。可以通过Wiremock的扩展转换器实现需求,以下是两种可行方案:

方案一:使用响应模板(Response Templating)

  1. 启动Wiremock时启用响应模板功能:
java -jar wiremock-jre8-2.33.2.jar --enable-response-templating
  1. 修改映射配置:
{
  "mappings": [
    {
      "request": {
        "method": "PATCH",
        "urlPattern": "/giglio/random/supplier-stock/.*",
        "headers": {
          "Content-Type": {
            "equalTo": "application/json"
          }
        }
      },
      "response": {
        "status": "{{pickRandom 200 500}}",
        "transformers": ["response-template"]
      }
    }
  ]
}

启用响应模板后,Wiremock会自动解析{{pickRandom}}表达式,将字符串转换为对应的整数状态码返回。

方案二:使用脚本转换器(Script Transformer)

无需全局启用响应模板,直接通过Groovy脚本动态修改响应状态码:

{
  "mappings": [
    {
      "request": {
        "method": "PATCH",
        "urlPattern": "/giglio/random/supplier-stock/.*",
        "headers": {
          "Content-Type": {
            "equalTo": "application/json"
          }
        }
      },
      "response": {
        "status": 200,
        "transformers": ["script"],
        "transformerParameters": {
          "script": "response.status = new java.util.Random().nextBoolean() ? 200 : 500;"
        }
      }
    }
  ]
}

脚本会随机将初始状态码200替换为200或500,若需要更多状态码选项,可修改脚本逻辑(比如用nextInt从数组中随机选取)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:12:47