我正在尝试使用SoapUI从RawRequest传输参数,但在读取时,值会发生变化。
参数是请求ID(每个测试都是唯一的),每个测试用例都会从Custom Properties请求它,它的存储方式如下:
${=((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", "")}
上面会生成这样的数字,例如:17879164
。
当我尝试使用内置功能或Groovy脚本转移它时,问题就开始了。两个读取参数都不正确:
以下是参数在RawRequest窗口中的显示方式:
任何人都可以解释一下,为什么这个值尽管在SoapUI RawRequest窗口中显示为17879164
,然后使用两种不同的方法读取为17879178
?
我认为线索可能是,当我使用“flat number”作为reqId而不是生成的那个时,两种方法都可以正常工作并返回正确的数字。但是在这种情况下,当它是RawRequest时,我知道它是一劳永逸地设置的,所以窗口中显示的内容和正在阅读的内容应该是相同的。
答案 0 :(得分:1)
您看到的是SoapUI中的“功能”。您的转移步骤将转移代码,然后再次对其进行评估,从而产生不同的值。
您需要做的是:
testCase.setPropertyValue("your_property", ((System.currentTimeMillis().toString()).subSequence(4, (System.currentTimeMillis().toString()).length())).replaceFirst("0", ""))
${#TestCase#your_property}
...此时此值是固定值,因此将始终相同。