在 SoapUI 中读取 RawRequest JSON 参数值改变它的值

Reading RawRequest JSON parameter value in SoapUI changes its value

我正在尝试使用 SoapUI 从 RawRequest 传输参数,但是在读取它时,值发生了变化。

参数为request ID(每个测试唯一),每个测试用例从Custom Properties中请求,存储如下:

${=((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", "")}

上面生成的数字是这样的,例如:17879164.

当我尝试使用内置功能或 Groovy 脚本传输它时,问题就出现了。两者都读错了参数:

以下是参数在 RawRequest window 中的呈现方式:

这是在 SoapUI 的 Transfer window 中读取的方式:

最后,Groovy 脚本如何读取它:

谁能解释一下,为什么这个值尽管在 SoapUI RawRequest window 中显示为 17879164 然后使用两种不同的方法读取为 17879178

我认为线索可能是,当我使用 "flat number" 作为 reqId 而不是生成的 reqId 时,这两种方法都可以正常工作并且 return 是正确的数字。但是在这种情况下,当它是 RawRequest 时,我知道它是一劳永逸地设置的,所以 window 中显示的内容和正在读取的内容应该是相同的。

您看到的是 SoapUI 中的“功能”。您的转移步骤将转移代码,然后将再次对其进行评估,从而产生不同的值。

您需要做的是:

  1. 创建测试用例属性。
  2. 将测试用例设置脚本中的 属性 设置为一个值。所以在你的情况下,像 testCase.setPropertyValue("your_property", ((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", ""))
  3. 测试中的任何地方都引用测试用例属性 ${#TestCase#your_property}...此时它是一个固定值,因此将始终相同。