Forum Discussion
Hello HimanshuTayal
You said "If you are adding event at TestSuite Leve then write."
As far as I know the Events (menu at the upper right) are global and i can not specify, that i want to add an event for the TestSuite Level.
We tried to add your line there with different triggers, but nothing happens. So my question still remains, how to i set this Variable though the Events :
derbestebaer, I've been able to set a test suite property from the TestRunListener.beforeStep event handler. As a stand-alone example, I did the following:
1) Created a new test suite
2) Added a test suite custom property called "tsProp"
3) Added a TestRunListener.beforeStep event handler with the following script (lots of log statements to aid debugging):
def stepName = testStep.getName() log.info('TestRunListener.beforeStep: About to run test step ' + stepName) def existingValue = testStep.getTestCase().getTestSuite().getPropertyValue('tsProp') log.info('TestRunListener.beforeStep: Existing value of tsProp = ' + existingValue) // Set the test suite property testStep.getTestCase().getTestSuite().setPropertyValue('tsProp', stepName) log.info('TestRunListener.beforeStep: set tsProp = ' + stepName)
4) Added a new test case.
5) Added 5 Groovy Test Steps to the test case all with the identical script just to display the current value of the test suite property:
def tsProp = context.expand( '${#TestSuite#tsProp}' ) log.info('Groovy Script Test Step: tsProp = ' + tsProp)
On running the test case I got the following log output (the test suite property was blank when I ran the test case):
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: About to run test step Groovy Script 1
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: Existing value of tsProp =
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: set tsProp = Groovy Script 1
Wed Oct 31 17:14:46 GMT 2018:INFO:Groovy Script Test Step: tsProp = Groovy Script 1
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: About to run test step Groovy Script 2
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: Existing value of tsProp = Groovy Script 1
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: set tsProp = Groovy Script 2
Wed Oct 31 17:14:46 GMT 2018:INFO:Groovy Script Test Step: tsProp = Groovy Script 2
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: About to run test step Groovy Script 3
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: Existing value of tsProp = Groovy Script 2
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: set tsProp = Groovy Script 3
Wed Oct 31 17:14:46 GMT 2018:INFO:Groovy Script Test Step: tsProp = Groovy Script 3
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: About to run test step Groovy Script 4
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: Existing value of tsProp = Groovy Script 3
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: set tsProp = Groovy Script 4
Wed Oct 31 17:14:46 GMT 2018:INFO:Groovy Script Test Step: tsProp = Groovy Script 4
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: About to run test step Groovy Script 5
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: Existing value of tsProp = Groovy Script 4
Wed Oct 31 17:14:46 GMT 2018:INFO:TestRunListener.beforeStep: set tsProp = Groovy Script 5
Wed Oct 31 17:14:46 GMT 2018:INFO:Groovy Script Test Step: tsProp = Groovy Script 5
Compare my scripts to yours and see how you get on.
- derbestebaer7 years agoNew Contributor
Hello Radford,
Thank you very much. That helped me a lot. I managed to set the Testsuit variable via an event Script.
Two points are still missing for me:
1. For our testing, we use soap ui in a way, in which we run every Teststep manually. Since you already used the event "TestRunListener.beforeStep " i expected that the event would also be triggered, if i run a teststep (SendSyncData) manually, but it seems, that the Testsuitvariable tsProp gets only written, when i run the whole Testsuite. I tried different events i.e. LoadTestRunListen.beforeTestStep but i dont get the event triggered by running the TestStep only.
2. Where can i find the outputconsole from ´your logfile bellow? If i add a groovy script i can see a console but this console is only for the current teststep. If i rightclick on the Testsuit and select "Groovy Console" i dont get any output there.
Thank you very much in advance.
Daniel- Radford7 years agoSuper Contributor
1) I am not 100% sure of this but the way I understand it is, the "TestRunListener.beforeStep" event only triggers when you actually run a test case, like wise the "TestSuiteRunListener.beforeRun" only runs when you run a test suite. Thus it makes sense to me that they don't trigger when you run just a test step manually. Sorry if this does not really help, I've always written my tests so the "Test Case" is the independent unit I run, I've never created tests where I have to manually run test steps.
2) The log outputs I refered to are the main application logs, see the following documentaion link for full details:
https://support.smartbear.com/readyapi/docs/configure/logs.html
- Olga_T7 years agoSmartBear Alumni (Retired)
Hi all,
Great set of instructions, Radford! And thank you for getting back to this topic!
derbestebaer, if your question was answered, could you please click the Accept as Solution button below the reply that provides the solution? This will help other users find the answer faster in the future.Thank you in advance!
- derbestebaer7 years agoNew Contributor
Mmmmmmh....
is there really no one who could help us? :smileysad:
Related Content
- 13 years ago
Recent Discussions
- 14 days ago
- 22 days ago