Groovy DataSink中的属性扩展

Groovy DataSink中的属性扩展,groovy,ready-api,Groovy,Ready Api,我正在尝试将测试结果写入ReadyAPI中带有时间戳的文件。我有一个DataGen,它在第一步中创建时间戳,然后在DataSink中,我在out文件的文件名中使用该时间戳。我听说在DataSink中允许进行属性扩展,但没有创建我的文件 我是否需要先初始化并创建文件(Groovy脚本) 输出数据链接中的文件配置:C:/Users/xxxxxx/Desktop/Projects/xxx/TestResults/OutFile{DataGen#time}.xlsx DataGen配置: 测试步骤

我正在尝试将测试结果写入ReadyAPI中带有时间戳的文件。我有一个DataGen,它在第一步中创建时间戳,然后在DataSink中,我在out文件的文件名中使用该时间戳。我听说在DataSink中允许进行属性扩展,但没有创建我的文件

我是否需要先初始化并创建文件(Groovy脚本)

输出数据链接中的文件配置:
C:/Users/xxxxxx/Desktop/Projects/xxx/TestResults/OutFile{DataGen#time}.xlsx

DataGen配置:

测试步骤

更新:
上次运行的时间戳正在数据链路中使用。那么让我们假设这些是运行:
运行1:8:00:00 AM->时间戳值
运行2:8:15:00 AM->时间戳值8:00:00 AM
运行3:8:30:00 AM->时间戳值8:15:00 AM

看起来datasink保留了属性的最后一个缓存版本,并且在新运行开始之前不会更新,这很奇怪

如果
DataGen
step除了创建时间戳之外没有执行任何操作,那么我建议尝试以下操作:

  • DataGen
    步骤替换为
    Groovy脚本
    测试步骤
  • 将下面的脚本内容放入
    Groovy脚本中
def dateTime=new Date()
def fileName=“C:/Users/xxxxxx/Desktop/Projects/xxx/TestResults/OutFile_${dateTime}.xlsx”
context.testCase.setPropertyValue('DATA\u SINK\u FILE\u PATH',文件名为字符串)
  • 对于文件名,请使用-
    ${TestCase\DATA\u SINK\u file\u PATH}

    • 问题根本不在于时间戳或文件创建。问题是试图在DataSink中使用属性扩展。使用时间戳作为文件名的唯一方法是在测试用例拆卸脚本中创建它。这可确保所有出口均已关闭,且无锁到位

      要解决此问题,请在测试期间在DataSink中使用要写入的临时文件。然后在拆卸脚本中,创建时间戳,创建新的输出文件,并将旧文件的内容写入其中

      下面是我最终使用的Groovy脚本:

      import jxl.*
      import jxl.write.*
      import java.text.SimpleDateFormat
      
      def timestamp = ''
      timestamp = new Date().format('yyyy_MM_dd_HH_mm_ss')
      
      def tempFile = context.testCase.getPropertyValue('tempFile')
      
      def output = tempFile +"_" + timestamp + ".xlsx"
      tempFile += ".xlsx"
      
      new File(output) << new File(tempFile).bytes
      
      导入jxl*
      导入jxl.write*
      导入java.text.simpleDataFormat
      def时间戳=“”
      时间戳=新日期().格式('yyyy\u MM\u dd\u HH\u MM\u ss')
      def tempFile=context.testCase.getPropertyValue('tempFile')
      def输出=临时文件+“”+时间戳+”.xlsx”
      tempFile+=“.xlsx”
      
      新文件(输出)谢谢,这无疑是朝着正确方向迈出的一步。但奇怪的事情正在发生。。请参阅updateGlad以获得帮助。这证明了房地产扩张是有效的
      DataGen
      我们无法修复,因为这不是我们的手。我相信这个答案有助于在实现所需功能的同时进一步推进。所以,如果你能接受它作为答案,我将不胜感激。