使用SoapUI中的groovy脚本测试步骤调用另一个测试步骤

时间:2017-11-07 10:46:46

标签: groovy soapui

我的Groovy Script测试步骤名为Copying_Bulk_File_To_BulkPayment_Folder

def rawRequest = context.expand('${SOAP#request}')        
def file1 = new File('C:/Actimize/4.23.0.30/Instances/actimize_server_1/QA/BulkPayment/NACHA/Input/RegularNachaPPD.ACH')    
file1.write (rawRequest)

之后我还有其他一些应该调用10次的groovy,但它没有按预期进行,下面是相应的代码。

if( context.loopIndex2 == null )
context.loopIndex2 = 0
if( ++context.loopIndex2 < 10 )
testRunner.gotoStepByName( "Copying_Bulk_File_To_BulkPayment_Folder" )

2 个答案:

答案 0 :(得分:1)

我确实有类似的经历。 gotoStepByName似乎无法正常工作或无法正确使用它。

为了让它发挥作用,请进行以下更改。

发件人:

testRunner.gotoStepByName("Copying_Bulk_File_To_BulkPayment_Folder")

testRunner.runTestStepByName('Copying_Bulk_File_To_BulkPayment_Folder')
编辑:OP提到他仍然有问题而没有提供详细信息。添加另一种方法来运行测试步骤。

或尝试使用以下代码而不是gotoStepByName语句。

def step = context.testCase.testSteps['Copying_Bulk_File_To_BulkPayment_Folder']
step.run(testRunner, context)

答案 1 :(得分:0)

您的脚本中有3个问题。

1)gotoStepByName, 将其更改为runTestStepByName

2)if(++ context.loopIndex2&lt; 10) 因为你想要一个循环更好地使用for循环而不是if条件

for(int i=0; i< 10 ; i++ )

3)文件名一直是相同的,即RegularNachaPPD.ACH,即使你复制1000次也不会看到这个,因为文件名是相同的,所以你应该带一个逻辑,每次都是文件的名称是不同的

int ok= (new Random().nextInt(100000))
print ok
def FileName='C:/Actimize/4.23.0.30/Instances/actimize_server_1/QA/BulkPayment/NACHA/Input/RegularNachaPPD_' + ok + '.ACH'

以下是我使用的代码,我能够创建10个文件

TestStepName : - 测试

if( context.loopIndex2 == null )
context.loopIndex2 = 0
for(int i=0; i< 10 ; i++ )
{
testRunner.runTestStepByName( "Copying_Bulk_File_To_BulkPayment_Folder" )
}

TestStepName : - Copying_Bulk_File_To_BulkPayment_Folder

int ok= (new Random().nextInt(100000))
print ok
def FileName='C:/Actimize/4.23.0.30/Instances/actimize_server_1/QA/BulkPayment/NACHA/Input/RegularNachaPPD_' + ok + '.ACH'

def rawRequest = context.expand('${First Step#request}')        
def file1 = new File(FileName)    
file1.write (rawRequest)

其中SOAP是另一个测试步骤的名称。

上述逻辑创建一个随机数,该数字附加在名称RegularNachaPPD

希望它有所帮助。我能够用上面的代码创建10个文件

enter image description here