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