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

Python中WireMock未遵循精度要求且返回字符串数值的问题

WireMock随机小数模拟问题解决

问题原因分析

  1. 精度不生效:WireMock的randomDecimal助手的precision参数定义的是有效数字位数,不是小数位数,所以你设置precision=2只会保留2位有效数字,而非两位小数。
  2. 返回字符串类型:因为你把模板变量放在了JSON字符串的引号中,替换后自然会被当作字符串输出。

解决方案

通过formatNumber模板助手配合randomDecimal来控制小数位数,同时移除模板变量的引号,让输出直接成为数值类型:

修改后的响应配置:

"response": {
  "status": 200,
  "jsonBody": {
    "weekly_rate": "{{formatNumber (randomDecimal lower=100 upper=800) '#.00'}}",
    "max_amount": "{{formatNumber (randomDecimal lower=5000 upper=20000) '#.00'}}"
  },
  "transformers": ["response-template"]
}

说明

  • randomDecimal只需指定lower和upper(无需带.00,整数或小数均可),生成原始随机数字。
  • formatNumber助手用格式字符串#.00强制保留两位小数,确保输出符合精度要求。
  • 移除模板变量的引号后,WireMock替换后的内容会直接作为JSON数值输出,而非字符串。

预期响应示例

{
  "weekly_rate": 345.67,
  "max_amount": 12345.90
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:40:55