在 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 中的“功能”。您的转移步骤将转移代码,然后将再次对其进行评估,从而产生不同的值。
您需要做的是:
- 创建测试用例属性。
- 将测试用例设置脚本中的 属性 设置为一个值。所以在你的情况下,像
testCase.setPropertyValue("your_property", ((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", ""))
- 测试中的任何地方都引用测试用例属性
${#TestCase#your_property}
...此时它是一个固定值,因此将始终相同。
我正在尝试使用 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 中的“功能”。您的转移步骤将转移代码,然后将再次对其进行评估,从而产生不同的值。
您需要做的是:
- 创建测试用例属性。
- 将测试用例设置脚本中的 属性 设置为一个值。所以在你的情况下,像
testCase.setPropertyValue("your_property", ((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", ""))
- 测试中的任何地方都引用测试用例属性
${#TestCase#your_property}
...此时它是一个固定值,因此将始终相同。