Groovy 文件未存储在文件夹目录中

Groovy 文件未存储在文件夹目录中,groovy,soapui,Groovy,Soapui,我在尝试将文件放在我创建的文件目录中时遇到问题。我希望这些文件进入已创建的文件夹“GET_Tests{Test}”,但不是进入该文件夹,而是将这些文件放在文件夹所在的同一目录中 我已经尝试了一些方法来让它工作,但是运气不好,我需要做什么改变才能将文件存储在文件夹中 下面是代码。一个脚本是ReadData,另一个是PrintToLogFile。ReadData创建文件夹,PrintTologFile创建文件 读取数据: // define properties required for the s

我在尝试将文件放在我创建的文件目录中时遇到问题。我希望这些文件进入已创建的文件夹“GET_Tests{Test}”,但不是进入该文件夹,而是将这些文件放在文件夹所在的同一目录中

我已经尝试了一些方法来让它工作,但是运气不好,我需要做什么改变才能将文件存储在文件夹中

下面是代码。一个脚本是ReadData,另一个是PrintToLogFile。ReadData创建文件夹,PrintTologFile创建文件

读取数据:

// define properties required for the script to run. 
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
def dataFolder = groovyUtils.projectPath
def date = new Date()
def folderTime = date.format("yyyy-MM-dd HH-mm-ss")
//Define an empty array list to load data from datasheet 
def DataTable = [];

//Create a folder directory for the responses
RootResultFolder = dataFolder + "/Responses" + "\\GET_Tests{Test} - " + folderTime
CreateResultFolder = new File(RootResultFolder)
CreateResultFolder.mkdir()
PrintToLogFile

import groovy.json.JsonOutput
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def casename= testRunner.testCase.name
def response = testRunner.testCase.getTestStepByName("GET_Tests{Test}").getProperty("Response").getValue();
def hotelId = testRunner.testCase.getPropertyValue('hotelid')
def date = new Date().format("yyyy-MM-dd")
def time = new Date().format("HH.mm.ss")
def fileName = hotelId + " - D" +date+ " T" +time+ ".txt" 
def dataFolder = context.getProperty("RootResultFolder")
def rootFolder = dataFolder + fileName 

def logFile = new File(rootFolder)

将响应保存到文件中并不需要额外的
Groovy脚本测试步骤。相反,
脚本断言
可以添加到相同的REST测试步骤请求中,下面是行内注释

脚本断言

import com.eviware.soapui.support.GroovyUtils

//Save the contents to a file
def saveToFile(file, content) {
    if (!file.parentFile.exists()) {
         file.parentFile.mkdirs()
         log.info "Directory did not exist, created"
    }
    file.write(content) 
    assert file.exists(), "${file.name} not created"
}

//Get the project path
def dataFolder =  new GroovyUtils(context).projectPath

//Create today's date for storing response
def today = new Date().format("yyyy-MM-dd")

def filePrefix = "${dataFolder}/Responses/GET_Ratings_hotelId_${today}" as String

def fileNamePart = new Date().format("yyyy-MM-dd'T'HH.mm.ss")

//Check if there is response
assert context.request, "Request is empty or null"

//create file object with file name
def file = new File("${filePrefix}/hotelId_${fileNamePart}.json")

//Call above method to save the content into file
saveToFile(file, context.response)

将响应保存到文件中并不需要额外的
Groovy脚本测试步骤。相反,
脚本断言
可以添加到相同的REST测试步骤请求中,下面是行内注释

脚本断言

import com.eviware.soapui.support.GroovyUtils

//Save the contents to a file
def saveToFile(file, content) {
    if (!file.parentFile.exists()) {
         file.parentFile.mkdirs()
         log.info "Directory did not exist, created"
    }
    file.write(content) 
    assert file.exists(), "${file.name} not created"
}

//Get the project path
def dataFolder =  new GroovyUtils(context).projectPath

//Create today's date for storing response
def today = new Date().format("yyyy-MM-dd")

def filePrefix = "${dataFolder}/Responses/GET_Ratings_hotelId_${today}" as String

def fileNamePart = new Date().format("yyyy-MM-dd'T'HH.mm.ss")

//Check if there is response
assert context.request, "Request is empty or null"

//create file object with file name
def file = new File("${filePrefix}/hotelId_${fileNamePart}.json")

//Call above method to save the content into file
saveToFile(file, context.response)

问题文件是否保存在目录之外,或者
hotelId
未被替换,或者两者都未被替换?问题是文件保存在目录之外测试用例的结构是什么?您只是想保存rest测试步骤的响应吗?还是数据驱动测试?或者如果测试用例中有多个步骤?我只是试图保存其余步骤的响应。因此,读取数据发生,然后rest请求发生,然后是PrinttoLogFile生成文件夹中的文件。如果要连接文件夹名和文件名,请使用双参数构造函数
file(String parent,String child)
,如下所示:
def logFile=new file(dataFolder,fileName)
。问题文件是否保存在目录外或
hotelId
未被替换或两者都未被替换?问题是文件保存在目录外测试用例的结构是什么?您只是想保存rest测试步骤的响应吗?还是数据驱动测试?或者如果测试用例中有多个步骤?我只是试图保存其余步骤的响应。因此,读取数据发生,然后rest请求发生,然后是PrinttoLogFile生成文件夹中的文件。如果要连接文件夹名和文件名,请使用双参数构造函数
file(String parent,String child)
,如下所示:
def logFile=new file(dataFolder,fileName)
。在您对另一个问题的评论之后,有一个拼写错误,刚刚修复。在您对另一个问题的评论之后,有一个拼写错误,刚刚修复。