How to use groovy script to dynamically store data in data source grid?
Hi,
I want to use a groovy script to store data+time stamp value into data source grid.
I think the steps are:
1) create data source grid step
stores the data
2) create groovy step
this script to get and then store the date value into data source grid
3) create api step
this is actual call to api
4) data source loop
this loops through each record in the data source as it calls the api
Is that correct?
In my groovy step, to get date I have:
def today = new Date()
def formattedDate = today.format("ddMMyyhhmm")
log.info(formattedDate)
But I'm not sure what the syntax is to store the value in data source. Can someone help me?
Jennifer
Hi,
I think I understand what you're trying to do.
Here's a mock-up of the test flow, as I see your requirements....
The Groovy script needs a return statement....
def today = new Date() def formattedDate = today.format("ddMMyyhhmm") log.info(formattedDate); return formattedDate;
I don't know what else you have in your grid, so here's an example that includes calling Get Date for each row...
Important Note : There is a checkbox labelled 'Recognize grid content as plain test. Uncheck this so ReadyAPI actually calls the Groovy script.
In your API step, you can then pull values from the current Datasource Grid row using this syntax.... ${Data Source Grid#Prop3}
Does that get you moving?
Hi,
I can achieve your end aim, but not by storing the timestamp value in the datasource grid. E.g. new test flow with Timestamp Groovy step inside the loop...
I've update the Datasource Grid to remove the timestamp column. E.g.
I've update the Groovy to return timestamp (milliseconds since January 1, 1970, 00:00:00 GMT). See https://www.tutorialspoint.com/groovy/groovy_gettime.htm
def today = new Date() def timestamp = today.getTime(); log.info("In loop - Timestamp value is " + timestamp); return timestamp;
In the API step, you can pull in values from both the Datasourcre grid and the Groovy Step using the $ syntax shown elsewhere.
Here's my Script log after running...
But, I cannot think of a way to store each call to Timestamp groovy in the Datasource grid. Sorry.