Calling Another TestCase in Katalon Studio

One of the many great features of Katalon Studio, is the ability to call other test cases using the CallTestCase command.

This would make the test case act like a procedure, where it can be called to execute a series of steps, then return to the main program after the work is done.
This means the automation code can be more modular, more dynamic and with the right planning, far more code can be reusable.
I’ve started to bring this into my own tests as seen by the example of reading the tabs of the customer profile. Here is another example to toggle the status of a user.
I made two test cases, one to “lock” a user and another to “unlock” a user. I can then read the text of the button and call to the appropriate test case.

//Call the appropriate function to toggle the status of the user
if (buttonText == 'Unlock') {
log.logWarning('Budget is Locked, running Unlock code')
WebUI.callTestCase(findTestCase('Admin Tasks/Unlock User'), [:], FailureHandling.STOP_ON_FAILURE)
} else {
log.logWarning('Budget is Unlocked, running Lock code')
WebUI.callTestCase(findTestCase('Admin Tasks/Lock User'), [:], FailureHandling.STOP_ON_FAILURE)
}

A test case can also take parameters when it’s called. If you had another test case that acted on a Name and ID, those would be passed as part of the command:

WebUI.callTestCase(findTestCase('Tasks/LogNameAndID'), [('userID') : '1091504 ', ('userName') : 'Bob Smith'], FailureHandling.STOP_ON_FAILURE)

By using CallTestCase, test cases can be called when needed, not just in a linear fashion. This means they can react to what’s on the page and skip over tests that aren’t applicable. A test can be written once and used multiple times.
As another example, I have a contact generation test case. We have several Contact forms and instead of putting the same text in over an over again, I created a test case that uses Lists, text parsing and random numbers to generate a somewhat unique user details.
I have a list for first names, last names, company and state. I use random numbers for the zip, phone, and street number. When called, a name, address, phone, etc are generated and assigned to the Global Variables I have defined for the project.
It would have code like the following:

def states=['AL','AK','AZ']
def cities=['Dentsville','Woodcreek','Las Lomitas']
//Generate phone number
areaCode=Math.abs(new Random().nextInt(799)) + 200;
numPrefix=Math.abs(new Random().nextInt(899)) + 100;
numSuffix=Math.abs(new Random().nextInt(9000)) + 1000;
GlobalVariable.phoneNumber=String.valueOf(areaCode) + String.valueOf(numPrefix) + String.valueOf(numSuffix)
//Create an email address from first name, last name and company name
tempEmailAddress=firstName+'.'+lastName+'@'+domainName
GlobalVariable.emailAddress=tempEmailAddress.toLowerCase()
//Pick a city
rndCity=Math.abs(new Random().nextInt(cities.size()));
GlobalVariable.cityName=cities[rndCity]

To create a new user, I call the Contact Generation test case then set the text of the input fields to the values of the variables. It works quite nicely.
As time goes by, I will try to use the CallTestCase more frequently and work to my test cases more modular. It’s already starting to happen in a couple of places and it’s a very powerful tool.

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • Parsing Strings in Katalon – Split, Substring and Readlines (4)
    • Anjana: Hey thanks for the response It is quite strange but initializing variable for delimiter and it worked String splitFormat = ‘-‘ WebUI.println(var_CampaignDura tion.toString().split(splitFor mat)[0])...
    • Don Pedro: I’m not really sure what the difference is, but I don’t think the “-“ in the split is the same as the one in the date. String var_CampaignDuration = “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Anjana: Hi, I tried the same thing to split the string, but does not work for me, Could you plz point out whats wrong Variable var_CampaignDuration has value “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Ellen: Thanks for sharing!! I like your contributions to Katalon topics.
  • How to Block games by Title and Tag on Steam (2)
    • Marcus861: I made an acc just to say: Same bro
    • JACK: Thanks, same just wanted to block anime games in my discover
  • Create a new and random UUID for an API call (1)
    • Anonymous: Hi ! I found this blog few weeks ago and it’s really helping me out with my tests! Thanks a lot for the Katalon tips and tricks ! Keep up the good work 🙂
  • How To Disable the Quicken Registration Prompt (25)
    • Greg: For me, holding the *LEFT* CTL + Shift then clicking Online, One Step Update worked. I originally tried holding the right CTL + Shift, and it didn’t work. I’m using Quicken 2006, so I don’t know if it will work...
    • Joe SR>: My monthly income is deposited into my Credit Union account. I use debit whenever possible. I write checks manually and mail them. I use Quicken 2012 off-line only. I have entered all my money and investment accounts. I...
    • Prtet: Never say never….every time I swear I will never use Quicken again, I discover that there are still no viable alternatives. Amazing that there is no decent personal finance software.
    • Joe D.: Holding CTRL + Shift keys and selecting On Line | One Step Update from the main menu worked for my Quicken 2004. I’m grateful that you wrote a synopsis (“Simply put, …”) just beneath the link to the blog...
    • Susan Long: I bought my quicken disc in the beginning and it came with a registration number. I rang the helpline and they gave me the code to put in and talked me through it. It you downloaded your version then you don’t own it...
    • Peter: You might consider running your old version of Quicken on an ancient computer. This is what I have done for years. The newer versions are fraught with problems- criminal, in my opinion. One version made mathmatical errors when...
  • Working with Dates and Date Formatting in Katalon Studio (6)
    • Ajoo: Thank you for the details. How do i remove leading “0” from dates. i.e. while formatting i receive 04/21/2019, but i need 4/21/2019. (same applies for date)
  • What is Katalon Studio? A Distro of Selenium, Groovy and Eclipse (1)
    • Mahesh: Looking for more posts on katalon studio.your katalon stuffs are always exiting