Hello, I’m pretty new on test automation / Katalon.
I’m try to create a test case where it is performed a query on data base looking for a given text. The custom keyword for data base connection that I’ve create seems to be working fine, but in the test case I’m getting the below error.
Can anyone help me please?
(…)
09-20-2018 08:37:49 AM - [START] - Start action : Statement - queryResult = CustomKeywords.customMethods.DatabaseMethods.executeQuery(“SELECT 1 FROM [NAMSLogDev].[dbo].[uLogEntry] where Transaction_Id in (select MAX(transaction_id)from [NAMSLogDev].[dbo].[uLogEntry]) and Class=1 and Log_Text like ‘%NAMST%’”)
09-20-2018 08:37:49 AM - [ERROR] - customMethods.DatabaseMethods
09-20-2018 08:37:49 AM - [END] - End action : Statement - queryResult = CustomKeywords.customMethods.DatabaseMethods.executeQuery(“SELECT 1 FROM [NAMSLogDev].[dbo].[uLogEntry] where Transaction_Id in (select MAX(transaction_id)from [NAMSLogDev].[dbo].[uLogEntry]) and Class=1 and Log_Text like ‘%NAMST%’”)
09-20-2018 08:37:49 AM - [ERROR] - Test Cases/New Test Case FAILED because (of) (Stack trace: java.lang.ClassNotFoundException: customMethods.DatabaseMethods
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:677)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:787)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:775)
at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.getCustomKeywordClassAndSetMetaClass(CustomKeywordDelegatingMetaClass.java:96)
at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:41)
at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at Script1536943761578.run(Script1536943761578.groovy:12)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:183)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:108)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:294)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:285)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:264)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:256)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:200)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:99)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:90)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)
at TempTestCase1537443446530.run(TempTestCase1537443446530.groovy:22)
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263)
at groovy.lang.GroovyShell.run(GroovyShell.java:518)
at groovy.lang.GroovyShell.run(GroovyShell.java:507)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
at groovy.ui.GroovyMain.run(GroovyMain.java:384)
at groovy.ui.GroovyMain.process(GroovyMain.java:370)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
at groovy.ui.GroovyMain.main(GroovyMain.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
)
09-20-2018 08:37:49 AM - [END] - End Test Case : Test Cases/New Test Case
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xbootclasspath/a:“C:\Program Files (x86)\HPE\Unified Functional Testing\bin\java_shared\classes\jasmine.jar”
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
==========
The test case is this one:
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import java.sql.ResultSet as ResultSet
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
WS.sendRequest(findTestObject(‘New Request’))
CustomKeywords.‘com.database2.SqlConnection.connectDB’(‘131.97.222.220’, ‘1433’, ‘NAMSLogDev’, ‘NAMS’, ‘n87gX3S’)
//Execute our query
ResultSet queryResult = CustomKeywords.‘customMethods.DatabaseMethods.executeQuery’(‘SELECT 1 FROM [NAMSLogDev].[dbo].[uLogEntry] where Transaction_Id in (select MAX(transaction_id)from [NAMSLogDev].[dbo].[uLogEntry]) and Class=1 and Log_Text like \’%NAMST%\‘’)
//Move the cursor in the ResultSet table to the first row
queryResult.next()
//Save the result as a string
String valueFromDatabase = queryResult.getString(1)
//Print our result from the database as a string to the console
println(valueFromDatabase)
CustomKeywords.‘com.database2.SqlConnection.closeDatabaseConnection’()