在SoapUI中读取RawRequest JSON参数值会更改其值

时间:2016-06-17 15:58:23

标签: json groovy soapui transfer

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

参数是请求ID(每个测试都是唯一的),每个测试用例都会从Custom Properties请求它,它的存储方式如下:

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

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

当我尝试使用内置功能或Groovy脚本转移它时,问题就开始了。两个读取参数都不正确:

以下是参数在RawRequest窗口中的显示方式:

enter image description here

这是在SoapUI的Transfer窗口中读取它的方式: enter image description here

最后,Groovy脚本如何读取它: enter image description here

任何人都可以解释一下,为什么这个值尽管在SoapUI RawRequest窗口中显示为17879164,然后使用两种不同的方法读取为17879178

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

1 个答案:

答案 0 :(得分:1)

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

您需要做的是:

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