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

Groovy在SOAP UI中生成指定范围随机数无输出无法获取返回值

问题背景

需要生成51.058993到54.152632区间内的数值,使用如下Groovy脚本在SOAP UI中执行时,既不生成对应数值,也无提示信息弹出,无法获取返回值:

double min = 51.058993
double max = 54.152632
def x = ((Math.random() * ((max - min) * 10 + 1) + min * 10) / 10.0).round(6)
println(x)
故障原因
  • 随机数计算逻辑错误:原脚本按10倍缩放的计算逻辑完全不符合保留6位小数的生成需求,计算结果本身就不在目标区间范围内
  • SOAP UI的println输出默认仅打印在「脚本日志(Script Log)」面板,不会主动弹出提示,未开启对应面板就看不到输出内容
  • 未设置返回逻辑:脚本没有将生成的数值存入SOAP UI的属性上下文,其他测试步骤无法读取生成结果
修复方案

替换为如下可用脚本:

// 定义数值区间上下限,用BigDecimal避免浮点精度丢失
BigDecimal min = 51.058993
BigDecimal max = 54.152632
// 生成区间内随机数,保留6位小数,四舍五入
def randomValue = min + (max - min) * new Random().nextDouble()
def x = randomValue.setScale(6, BigDecimal.ROUND_HALF_UP)
// 输出到脚本日志,可在SOAP UI底部Script Log面板查看
log.info("生成的随机数值:${x}")
// 可选:弹窗展示生成结果
// javax.swing.JOptionPane.showMessageDialog(null, "生成数值:${x}")
// 可选:存入测试用例属性,供后续接口步骤调用,引用方式为${#TestCase#randomNum}
testRunner.testCase.setPropertyValue("randomNum", x.toString())
验证方式

执行脚本后打开SOAP UI底部的「Script Log」面板即可查看生成的数值,如需在其他步骤使用直接引用存入的测试用例属性即可。

内容的提问来源于stack exchange,提问作者jakub dušek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:39:01