通过Groovy脚本在SoapUI中进行自动数据驱动测试

通过Groovy脚本在SoapUI中进行自动数据驱动测试,groovy,soapui,Groovy,Soapui,正如在soapUI免费版本中所讨论的,我尝试将此WS: 我想从桌面上的本地data.txt文件中获取“key”的值。此文件的内容: 99999991 9999999992 9999999993 为此,我创建了一个测试套件,包括以下三个测试步骤: 1.第一步:groovy脚本: def data=new文件('C:/Users/Polarick/Desktop/data.txt') data.eachLine{orderId-> context.orderId=orderId //获取步骤2

正如在soapUI免费版本中所讨论的,我尝试将此WS:


我想从桌面上的本地data.txt文件中获取“key”的值。此文件的内容:

99999991
9999999992
9999999993
为此,我创建了一个测试套件,包括以下三个测试步骤:

1.第一步:groovy脚本:

def data=new文件('C:/Users/Polarick/Desktop/data.txt')
data.eachLine{orderId->
context.orderId=orderId
//获取步骤2,步骤的索引为1
def step=context.testCase.getTestStepAt(1)
//运行步骤2
运行(testRunner,上下文)
}
//所有命令都已执行,跳转到步骤2,索引为2
testRunner.gotoStep(2)
2.第二步:修改请求:


并向其断言此脚本:

//检查是否有响应
assert context.request,“请求为空或null”
//将内容保存到文件中
def保存文件(文件、内容){
如果(!file.parentFile.exists()){
file.parentFile.mkdirs()文件
log.info“目录不存在,已创建”
}
file.write(内容)
assert file.exists(),“${file.name}未创建”
}
def response=context.expand(“${Step2#response}”)
def f=新文件(“C:/Users/Polarick/Desktop/${context.orderId}\u Response.xml”)
f、 写入(响应,“UTF-8”)
saveToFile(f,context.response)
3.第三步:groovy脚本:

log.info“测试已完成。”
这一切都可以正常工作,并对data.txt文件中存在的所有行依次调用WS,但我希望每次执行都能找到response.xml文件,例如:

C:/Users/Polarick/Desktop/9991_Response.xml
C:/Users/Polarick/Desktop/9999992_Response.xml
C:/Users/Polarick/Desktop/9999993_Response.xml
但是没有生成响应文件,
您能提供帮助吗?

soapUI脚本或错误日志是否显示任何错误或异常?我在soap步骤(第2步)中遇到此错误:请求为空或为空。Expression:context.request将值存储为属性,并在请求XML中对其进行参数化,如下所述: