文件未存储在文件夹目录中 [英] Files not being stored in folder directory

查看:103
本文介绍了文件未存储在文件夹目录中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我尝试了几件事情来尝试使它运行,但没有运气,为了让文件存储在文件夹中,我需要改变什么?



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



ReadData:
$ b

  //定义脚本运行所需的属性。 
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def dataFolder = groovyUtils.projectPath
def date = new Date()
def folderTime = date。格式(yyyy-MM-dd HH-mm-ss)
//定义一个空数组列表来加载数据表中的数据
def DataTable = [];

//为响应创建一个文件夹目录
RootResultFolder = dataFolder +/ Responses+\\GET_Tests {Test} - + folderTime
CreateResultFolder = new File(RootResultFolder)
CreateResultFolder.mkdir()


$ b 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
$ b def logFile = new File(rootFolder)


Groovy Script 测试步骤并不是真的需要将响应保存到文件中。相反, Script Assertion 可以添加到下面的相同REST测试步骤请求中,并按照行内注释。



脚本断言

  import com.eviware.soapui.support.GroovyUtils 

//将内容保存到文件
def saveToFile(file,content){
if(!file.parentFile.exists()){
file.parentFile.mkdirs()
log.info目录不存在,创建
}
file.write(内容)
断言file.exists(),$ {file.name} not created
}

//获取项目路径
def dataFolder = new GroovyUtils(context).projectPath

//创建今天存储响应的日期
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)

//检查是否有响应
断言t.requestRequest is empty or null

//创建带文件名的文件对象
def file = new File($ {filePrefix} / hotelId _ $ {fileNamePart} .json )

//调用上面的方法将内容保存到文件中
saveToFile(file,context.response)


I am having issues trying to place files within a file directory I have created. I want the files to go into the created folder 'GET_Tests{Test}' but instead of going into this folder, it is placing the files on the same directory the folder is within.

I have tried a few things to try and get it working but no luck, what do I need to change in order to get the files stored within the folder?

Below is the code. One script is ReadData and the other is PrintToLogFile. ReadData creates the folder whilst PrintTologFile creates the files.

ReadData:

// 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)

解决方案

An additional Groovy Script test step is not really needed to just save the response into a file. Instead a Script Assertion can be added to the same REST test step request with below, follow in-line comments.

Script Assertion

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)

这篇关于文件未存储在文件夹目录中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆