groovy.lang.MissingPropertyException:没有这样的属性:类的文件:Script7第5行出错

groovy.lang.MissingPropertyException:没有这样的属性:类的文件:Script7第5行出错,groovy,soapui,Groovy,Soapui,我正在编写groovy脚本以保存原始soap请求和响应,但出现以下错误: groovy.lang.MissingPropertyException:没有这样的属性:类的文件:Script7第5行出错 以下是脚本: def myOutFile = context.expand( '${#TestSuite#fileName}' )+"_PostPaid-Success_Payment_BillInqReq.xml" def response = context.expand( '${BillIn

我正在编写groovy脚本以保存原始soap请求和响应,但出现以下错误:

groovy.lang.MissingPropertyException:没有这样的属性:类的文件:Script7第5行出错

以下是脚本:

def myOutFile = context.expand( '${#TestSuite#fileName}' )+"_PostPaid-Success_Payment_BillInqReq.xml" 
def response = context.expand( '${BillInq#Request}' ) 
def f = new File(myOutFile) 
f.write(response, "UTF-8") 
file.write(context.rawRequest,'utf-8')


请按照以下步骤操作:

  • 转到测试套件
    PostPaid
  • 将自定义属性(如
    DATA\u STORE\u PATH)及其值添加到要保存请求和响应的目录名中
  • 转到测试用例
    PostPaid\u Success\u Payment
  • 禁用步骤2和步骤3,即
    SaveInquiryReq
    SaveInquiryResponse
    步骤。或者,如果除了分别保存请求和响应之外,没有其他工作完成,您也可以删除altoger
  • 单击步骤1
    BillInq
    ,单击断言,选择
    scriptassertion
    ,参见此处了解更多详细信息
  • 创建以下脚本并单击“确定”
  • 现在运行step1,您应该能够看到保存在上述目录中的请求和响应
/**
*此脚本记录请求和响应
*/
assert context.response,“响应为空或null”
assert context.request,“请求为空或null”
//将内容保存到文件中
def保存文件(文件、内容){
如果(!file.parentFile.exists()){
file.parentFile.mkdirs()文件
log.info“目录不存在,已创建”
}
file.write(内容)
assert file.exists(),“${file.name}未创建”
}
def dirToStore=context.expand(“${#TestSuite#DATA#u STORE_PATH}”)
def currentStepName=context.currentStep.name
def requestFileName=“${dirToStore}/${currentStepName}\u request.xml”
def responseFileName=“${dirToStore}/${currentStepName}\u response.xml”
//将请求和响应保存到目录
saveToFile(新文件(requestFileName),context.rawRequest)
saveToFile(新文件(responseFileName),context.response)

第5行中使用的脚本中没有创建的
文件
对象。您可以测试套件属性和测试用例屏幕截图吗?您是否在
计费
测试步骤的
脚本断言
中使用它?。看起来你似乎有几个星期的问题和不同的问题。是的,在我修复了报告自动生成之后,现在我想用步骤名称记录每个soap测试步骤的原始请求和响应,我最终使用了上面的脚本,但当我使用参考值时,我得到了提到的错误感谢编辑。脚本在哪里?还是步骤号?顺便说一下,我不知道为什么会有多个groovy脚本。每件事都可以分步完成。无论如何,请澄清。脚本位于SaveInquirryReq groovy步骤中。我不知道如何一步完成。脚本
文件的最后一行。write()
应该是
f.write()。将脚本更新为
rawRequest
。考虑ACCEPSTIN作为回答和投票,如果这有帮助的话。经过长时间的拉伸:今天,你按照指示快速得到结果。图像帮助我回答了这个问题。