SOAPUI断言脚本两次写入文件

时间:2017-03-07 13:55:29

标签: groovy soapui

我正在编写一个groovy脚本,我从响应中提取文本并将其写入系统上的输出文件。我遇到的问题是当我运行调用测试的groovy脚本时。脚本断言运行并将文本两次记录到文件中。

它似乎在它离开断言之前写入文件。

我尝试了以下内容:

...
...
if (context.alreadyWritten == null || !context.alreadyWritten) {
    inputFile.append (testString+ "\n")
    log.info testString
} else {
   log.info ('Already written!')
}   

在执行测试步骤之前,我已经在groovy中将标志(context.alreadyWritten)设置为false。

SOAPUI版本:5.3.0

我发现在断言脚本中附加到文件时,Smartbear之前存在一个问题。但是建议解决方法解决此问题:

if (context.alreadyWritten == null || !context.alreadyWritten) {
}

哪个无法解决我的问题

当我使用log.info记录结果时,我看到只记录了一个消息实例。

任何想法。

由于

1 个答案:

答案 0 :(得分:0)

如果您使用的是Script Assertion,请尝试以下操作:

//Define the file name, change as needed
def fileName = '/path/to/file.xml'

//check if you got the response

if (context.response) {
   log.info 'Response available and not empty'
   def file = new File(fileName)
   if (!context?.alreadySaved) {
       file.write(context.response)
       context.alreadySaved = true
       log.info 'response written to file'
   } else {
     log.info 'Response already written'
   }
} else {
  log.info 'there is no response to save'
}