How to create custom keywords in katalon studio. You can define your own Keyword. It will work like same as built-in keywords. In this tutorial, I am going to show you how can you define and call your custom keywords in katalon studio.
Testcase Scenario:
For example, we are going to perform login activity so we need to perform following steps.
- Open Browser.
- Navigate URL.
- Enter username and password.
- Click on the login button.
- Close Browser.
We can perform this test case by using custom keywords but here we are going to do the same task by Custom keyword.
Custom keywords in Katalon studio
Keyword>new>Keyword

Enter a Package name and Keyword name:

Define custom keyword in Katalon studio. You just need to enter “@Keyword” and another code is same as Java methods.
@Keyword
public void goLogin(){
WebUI.navigateToUrl('https://demoaut.katalon.com/profile.php#login')
WebUI.setText(findTestObject('Page_CURA Healthcare Service/input_username'), 'John Doe')
WebUI.setText(findTestObject('Page_CURA Healthcare Service/input_password'), 'ThisIsNotAPassword')
WebUI.click(findTestObject('Page_CURA Healthcare Service/button_Login'))
}
Call custom keyword in katalon Studio.
CustomKeywords.‘mypack.Login.goLogin’()
Complete SourceCode
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory as CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as MobileBuiltInKeywords
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testcase.TestCaseFactory as TestCaseFactory
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository as ObjectRepository
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUiBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys
WebUI.openBrowser('')
CustomKeywords.'mypack.Login.goLogin'()
WebUI.closeBrowser()
CustomKeyword(Login.groovy):
package mypack
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.checkpoint.Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords
import com.kms.katalon.core.model.FailureHandling
import com.kms.katalon.core.testcase.TestCase
import com.kms.katalon.core.testcase.TestCaseFactory
import com.kms.katalon.core.testdata.TestData
import com.kms.katalon.core.testdata.TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords
import internal.GlobalVariable
import MobileBuiltInKeywords as Mobile
import WSBuiltInKeywords as WS
import WebUiBuiltInKeywords as WebUI
public class Login {
@Keyword
public void goLogin(){
WebUI.navigateToUrl('https://demoaut.katalon.com/profile.php#login')
WebUI.setText(findTestObject('Page_CURA Healthcare Service/input_username'), 'John Doe')
WebUI.setText(findTestObject('Page_CURA Healthcare Service/input_password'), 'ThisIsNotAPassword')
WebUI.click(findTestObject('Page_CURA Healthcare Service/button_Login'))
}
}