cancel
Showing results for 
Search instead for 
Did you mean: 

Populate string inside Excel Data Sink fields from groovy script

SOLVED
Contributor

Populate string inside Excel Data Sink fields from groovy script

Hey, 

Context : Let's say that I have appended a DataSink Teststep manually which I have named "DataSink", feature which is provide naturally in the UI of ReadyAPI.

Now, I would like to get this object instance and feed it regarding my environment execution. I have already known how to get the environment settings so the issue is only how /what are the statements to set DataSink parameters from a groovy script Teststep.


On SoapUiPro documentation, I have found this :
http://www.soapui.org/apidocs/pro/com/eviware/soapui/impl/wsdl/teststeps/datasink/ExcelDataSink.html...


First, I would like to be able to use these metods setFileName(path), setOutFileName(path), setWorksheet(worksheet), setStartCell(startCell) in order to provide the parameters to the DataSink instance.

I also would like loading properties from my first row of the ExcelFile and keep only those I want but in the class

documentation, I do not see any metod to add properties to the DataSink.

Does anyone have an idea of how to achieve both purposes?

Regards,

Harold

1 ACCEPTED SOLUTION

Accepted Solutions
Community Hero

Re: Populate string inside Excel Data Sink fields from groovy script

The first part you can handle by setting up the following groovy script:

 

def dataSink = context.testCase.testSteps["DataSink"];
def excel = dataSink.getDataSink();

You would use the details on the link you posted on the excel variable to adjust the file paths and settings specific to the Excel data source. Example:

 

excel.setFileName("C:\\temp\\Book1.xlsx");

You would use the dataSink variable to adjust the actual properties/values of the Data Sink. Example:

dataSink.setPropertyValue("PropertyName", "This Is My Property Value");

Hope that helps!

 




---

Click the Accept as Solution button if my answer has helped, and remember to give kudos where appropriate too!

View solution in original post

2 REPLIES 2
Community Hero

Re: Populate string inside Excel Data Sink fields from groovy script

The first part you can handle by setting up the following groovy script:

 

def dataSink = context.testCase.testSteps["DataSink"];
def excel = dataSink.getDataSink();

You would use the details on the link you posted on the excel variable to adjust the file paths and settings specific to the Excel data source. Example:

 

excel.setFileName("C:\\temp\\Book1.xlsx");

You would use the dataSink variable to adjust the actual properties/values of the Data Sink. Example:

dataSink.setPropertyValue("PropertyName", "This Is My Property Value");

Hope that helps!

 




---

Click the Accept as Solution button if my answer has helped, and remember to give kudos where appropriate too!

View solution in original post

Contributor

Re: Populate string inside Excel Data Sink fields from groovy script

Hello @msiadak,

That'it, thaks you. 

Here, I share my script aaccording to my need :

def dataSink = context.testCase.testSteps["ExcelDataSink"];
def excel = dataSink.getDataSink();

def environmentName = testRunner.testCase.testSuite.project.activeEnvironment.name;

if (environmentName == "Integration"){
	excel.setFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\fr-cevia-v2-vs_GenericTable.xls");
	excel.setOutFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\INT\\CheckSdcAuthorisationTestSuite\\CheckSdcAuthorisationTestCaseResult[INT].xls");
	excel.setWorksheet("CEVIA_V2");
	excel.setEvaluateFormulas(false);
	dataSink.setPropertyValue("CheckSdcAuthorisationTestCaseResult", '${#TestCase#Status}');
	excel.setStartCell("K2");
} else if (environmentName == "Recette"){
	excel.setFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\fr-cevia-v2-vs_GenericTable.xls");
	excel.setOutFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\REC\\CheckSdcAuthorisationTestSuite\\CheckSdcAuthorisationTestCaseResult[REC].xls");
	excel.setWorksheet("CEVIA_V2");
	excel.setEvaluateFormulas(false);
	dataSink.setPropertyValue("CheckSdcAuthorisationTestCaseResult", '${#TestCase#Status}');
	excel.setStartCell("K2");
} else if (environmentName == "PreProd"){
	excel.setFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\fr-cevia-v2-vs_GenericTable.xls");
	excel.setOutFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\PP\\CheckSdcAuthorisationTestSuite\\CheckSdcAuthorisationTestCaseResult[PP].xls");
	excel.setWorksheet("CEVIA_V2");
	excel.setEvaluateFormulas(false);
	dataSink.setPropertyValue("CheckSdcAuthorisationTestCaseResult", '${#TestCase#Status}');
	excel.setStartCell("K2");
} else if (environmentName == "Prod"){
	excel.setFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\fr-cevia-v2-vs_GenericTable.xls");
	excel.setOutFileName("E:\\SoapUi_Workspaces\\ProjectsToDeliver\\fr-cevia-v2-vs\\TestCaseResult\\PROD\\CheckSdcAuthorisationTestSuite\\CheckSdcAuthorisationTestCaseResult[PROD].xls");
	excel.setWorksheet("CEVIA_V2");
	excel.setEvaluateFormulas(false);
	dataSink.setPropertyValue("CheckSdcAuthorisationTestCaseResult", '${#TestCase#Status}');
	excel.setStartCell("K2");
} else {
	log.info("Default Environment");
}
New Here?
Join us and watch the welcome video:
Final Interview in the Series
API_testing_mistake#7
Top Kudoed Authors