Forum Discussion

tabbykat's avatar
tabbykat
New Contributor
2 years ago

Scripting goto next step

I am using SoapUI 5.7.  In my test steps, I use a groovy script to conditionally jump past a step as it will fail if running the suite locally.  I can skip to another step by name, but I am concerned if someone were to rename a step or rearrange them it would break things.  As such, how can I just check what step index I am currently on and jump past the next step (current +2)?

 

testrunner.gotoStepByName()

testrunner.gotoStep()

 

//--unable to get the index from the step class

context.getCurrentStep()  

  • try to run your teststep using groovy rather than by sequence. 

     

    disable you tests in the soapui and control the test step execution based on criteria by using the below

    testRunner.runTestStepByName("testStepName")

     

    lets say you have three steps --> testStepName1, testStepName2 & testStepName3

     

    testRunner.runTestStepByName("testStepName1")

    if(<someCondition>) then

          testRunner.runTestStepByName("testStepName3")

    else 

       testRunner.runTestStepByName("testStepName2")

       testRunner.runTestStepByName("testStepName3")

    • tabbykat's avatar
      tabbykat
      New Contributor

      I am using a Groovy script to check for a condition (if local) and skipping the next step if it is true.  I am currently skipping it by name but I would prefer just to use the (calculated) step index in case the step name changes or the other non-skipped steps change order.  In general, I want to avoid referencing steps by name in case of name changes.

       

      Is there a way I can calculate the index of the step I am currently on to skip over the next step?  Something like the following?

       

      if(condition){

          stepNum = context.getCurrentStep().index    //--unsure how to do this

          stepNum = stepNum+2

          testRunner.gotoStep(stepNum)

      }

      • TNeuschwanger's avatar
        TNeuschwanger
        Champion Level 1

        Hello tabbykat 

         

        You are still in the same predicament if you are using an index to the step you want to skip to...  There is same possibility of people renaming a test case as there is people re-arranging the test step sequence.  You might have to reconsider to a more robust process to determine which test step to jump to.  Maybe have two testcases... one for local and one for not.  Maybe add some documentation to the beginning of the test case to tell other people to don't touch or something.

         

        Regards,

        Todd