Hi,
Is it possible to use Listeners (@BeforeTestCase and @AfterTestCase) before and after WebUI.callTestCase(…) ?
Or at least, get TestCaseContext after the execution of WebUI.callTestCase ?
Thanks a lot,
Regards
Hi,
Is it possible to use Listeners (@BeforeTestCase and @AfterTestCase) before and after WebUI.callTestCase(…) ?
Or at least, get TestCaseContext after the execution of WebUI.callTestCase ?
Thanks a lot,
Regards
No.
I suppose you want to inform the callee Test Case of its name. For example, a caller Test Cases/Caller1
has this line:
WebUI.callTestCase(findTestCase("Test Cases/CalleeX",[:])
and a callee Test Cases/CalleeX
has such line:
println "Hi, my name is ${testcaseName}"
Then you want see:
Hi, my name is CalleeX
The question is, how you can set the name of the callee test case ‘CalleeX’ into the variable testcaseName
?
Am I right?
Thanks for your answer
Not exactly, but this is because my question is not clear.
My need is to have the “context” of the test case after its execution. For example, get its status.
To do something like :
TestCaseContext tcc = WebUI.callTestCase(…)
System.out.println(tcc.getStatus())
...
Because currently, I don’t have any information about the execution…
TCCaller:
def result = WebUI.callTestCase(findTestCase(".../TCCallee"), ...)
Println result // ==> Something interesting
TCCallee
// Do steps...
return "Something interesting"
In short, a test case can return a simple value or even a more complex result, like a map, perhaps.
Thanks for your answer.
Solution found is to use GlobalVariable.
TCCaller
GlobalVariable.Gbl_TestCaseStatus = ‘Failed’
WebUI.callTestCase(findTestCase("…/TCCallee"), …)
// I use GlobalVariable.Gbl_TestCaseStatus here
TCCalee
// Some steps
// …
GlobalVariable.Gbl_TestCaseStatus = ‘Passed’ // ==> last line of the test case
Hello,
I’m looking for you solution…
I have 1 “TestCase A” who called 3 Testcase (“TesCase A1”, “TestCaseA2” and “TestCaseA3”).
In each called TestCase in would like to have my first line code with : :
Mobile.comment('Entered in called test case = ’ + myCalledTestCase)
How to do that ?
If I use, the listener I can only get the “main” “TestCaseA” name.
Thank you for your help
The caller TestCaseA
can pass the name of callees (though I find the following lines look unfit):
Mobile.callTestCase(findTestCase('TestCase A1'), ['calleeName': 'TestCase A1'])
Mobile.callTestCase(findTestCase('TestCase A2'), ['calleeName': 'TestCase A2'])
Mobile.callTestCase(findTestCase('TestCase A3'), ['calleeName': 'TestCase A3'])
and each callees (TestCase A1 and others) can consume the ‘calleeName’ argument.
Mobile.comment("Entered in called test case = ${calleeName}")
Yes, this solution is working, but…
… If one day I decide to change my “TestCaseA1” name… i have also to change it everywhere in code in my mains TestCases where it is called…
Thanks you
Hi,
Tell me if I’m wrong but if you rename your test case name in Katalon Explorer (panel on the left), all dependencies like findTestCase(...)
will be automatically updated with the new name.
However, about calleeName
, correct, it will not be updated.
One solution to fix this problem is the following one (even if I agree that is not perfect).
Store all your TestCase name in GlobalVariables like :
TestCase1 = TestCaseA1
TestCase2 = TestCaseA2
TestCase3 = TestCaseA3
And use :
Mobile.callTestCase(findTestCase(GlobalVariable.TestCase1), ['calleeName': GlobalVariable.TestCase1])
By this way, you will have to change only the GlobalVariable value.
Regards,