soapui - groovy 脚本中的错误,该脚本从 csv 获取值以填充 XML
soapui - error in groovy script which sources values from csv to populate XML
我有 'borrowed' 一些 groovy 脚本(来自另一个 Whosebug post),它基本上应该从 csv 文件中读取值,在 xml 中填充标签,post转到网络服务,然后循环到 csv 中的下一条记录。
但是 - 当我尝试 运行 脚本时出现空指针异常。我已经解决了脚本的其他几个问题(缺少括号等),但我就是看不出空指针有什么问题。
代码如下:
import com.eviware.soapui.impl.wsdl.teststeps.*
def testDataSet = []
def fileName = "C:\sourcedata.csv"
new File(fileName).eachLine { line -> testDataSet.add( line.split(",") ) }
def myProps = new java.util.Properties();
myProps = testRunner.testCase.getTestStepByName("Properties");
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def testCase = testRunner.testCase;
def testStep = testCase.getTestStepByName("TestRequest");
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null);
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
testStep.run(testRunner, testStepContext);
while (true) {
for ( i in testDataSet ) {
def th = Thread.start(){
myProps.setPropertyValue("parameter0",i[0]);
myProps.setPropertyValue("username",i[1]);
myProps.setPropertyValue("parameter1",i[2]);
myProps.setPropertyValue("password",i[3]);
testStep.getTestRequest().setUsername(myProps.getPropertyValue("username"))
testStep.getTestRequest().setPassword(myProps.getPropertyValue("password"))
testStep.run(testRunner, testStepContext);
}
th.join()
}}
SoapUI 中的错误响应只是第 17 行的空指针 - 第 17 行是 testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
如果有人能找出问题所在 - 我将不胜感激!
干杯
如果 nullPointer
抛出在:
,则不分析其余代码
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
问题是 testStep
为空,这可能是因为您在这里为 testStep
指定了错误的名称,然后 testStep
为空:
def testStep = testCase.getTestStepByName("TestRequest");
我认为 testStep 名称可能是 Test Request
而不是 TestRequest
(注意 Test
和 Request
单词之间的 space)我认为这是因为默认情况下,当您创建 testStep 时,名称为 Test Request
(space)。
希望这对您有所帮助,
我有 'borrowed' 一些 groovy 脚本(来自另一个 Whosebug post),它基本上应该从 csv 文件中读取值,在 xml 中填充标签,post转到网络服务,然后循环到 csv 中的下一条记录。
但是 - 当我尝试 运行 脚本时出现空指针异常。我已经解决了脚本的其他几个问题(缺少括号等),但我就是看不出空指针有什么问题。
代码如下:
import com.eviware.soapui.impl.wsdl.teststeps.*
def testDataSet = []
def fileName = "C:\sourcedata.csv"
new File(fileName).eachLine { line -> testDataSet.add( line.split(",") ) }
def myProps = new java.util.Properties();
myProps = testRunner.testCase.getTestStepByName("Properties");
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def testCase = testRunner.testCase;
def testStep = testCase.getTestStepByName("TestRequest");
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null);
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
testStep.run(testRunner, testStepContext);
while (true) {
for ( i in testDataSet ) {
def th = Thread.start(){
myProps.setPropertyValue("parameter0",i[0]);
myProps.setPropertyValue("username",i[1]);
myProps.setPropertyValue("parameter1",i[2]);
myProps.setPropertyValue("password",i[3]);
testStep.getTestRequest().setUsername(myProps.getPropertyValue("username"))
testStep.getTestRequest().setPassword(myProps.getPropertyValue("password"))
testStep.run(testRunner, testStepContext);
}
th.join()
}}
SoapUI 中的错误响应只是第 17 行的空指针 - 第 17 行是 testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
如果有人能找出问题所在 - 我将不胜感激!
干杯
如果 nullPointer
抛出在:
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
问题是 testStep
为空,这可能是因为您在这里为 testStep
指定了错误的名称,然后 testStep
为空:
def testStep = testCase.getTestStepByName("TestRequest");
我认为 testStep 名称可能是 Test Request
而不是 TestRequest
(注意 Test
和 Request
单词之间的 space)我认为这是因为默认情况下,当您创建 testStep 时,名称为 Test Request
(space)。
希望这对您有所帮助,