Datasource und Parameter von Ranorex lesen

Einen Überblick, wie in Ranorex Data-Driven Tests, also Datengetriebene Test, erstellt werden, gibt es hier direkt vom Hersteller. In diesem Beispiel wird die Erstellung der Tests und die Benutzung von DataSources sowie Parametern über die Oberfläche im Ranorex Studio erklärt. Aber Ranorex bietet noch viel mehr.

User Code Module

Mit User Code Modulen lässt sich durch eigene Programmierung noch mehr Variabilität raus holen.

Im Namespace Ranorex.Core.Testing erhält man Zugriff auf die Klassen TestSuite und TestCase. Diese bieten Methoden um auf die jeweiligen Parameter und DataSources zuzugreifen.

Mit der folgenden Zeile liest man zum Beispiel die gesamte aktuelle Zeile aus der Datenquelle die einem TestCase zugeordnet ist.

Ranorex.Core.Data.Row currentrow = TestCase.Current.DataContext.CurrentRow;

Es lässt sich natürlich auch eine Spalte im DataSource direkt ansprechen.

TestCase.Current.DataContext.CurrentRow[„Spalte1“]

Beispiele TestSuite Parameter

Wie bereits erwähnt klappt das ganze auch mit den Parametern. Die folgende Methode liest alle Parameter der TestSuite ein und gib diese im Report aus.

private void GetAllTestSuiteParameters()
{
	string report = string.Empty;
	IDictionary<string, string> tsps = TestSuite.Current.Parameters;
	
	report = "Current TestSuite Parameters";
	foreach(KeyValuePair<string, string> tsp in tsps)
	{
		report += string.Format("{2}Key='{0}'; Value='{1}'", tsp.Key, tsp.Value, Environment.NewLine);
	}
	
	Report.Info("",report);
}

Ein Parameter lässt sich auch direkt auslesen.

private void GetSpecifiedTestSuiteParameter()
{
	string report = string.Empty;
	
	report = "Specified TestSuite Parameter";
	report += string.Format("Value from TestSuiteParameter1: {0}", TestSuite.Current.Parameters["TestSuiteParameter1"]);
	
	Report.Info("",report);
}

Beispiele TestCase Parameter

Im folgenden Beispiel werden alle TestCase Parameter des aktuellen TestCase gelesen.

private void GetAllTestCaseParameters()
{
	string report = string.Empty;
	IDictionary<string, string> tsps = TestCase.Current.Parameters;
	
	report = "Current TestCase Parameters";
	foreach(KeyValuePair<string, string> tsp in tsps)
	{
		report += string.Format("{2}Key='{0}'; Value='{1}'", tsp.Key, tsp.Value, Environment.NewLine);
	}
	
	Report.Info("",report);
}

Und ein Beispiel für einen bestimmten Parameter.

private void GetSpecifiedTestCaseParameter()
{
	string report = string.Empty;
	
	report = "Specified TestCase Parameter";
	report += string.Format("Value from TestCase1Parameter1: {0}", TestCase.Current.Parameters["TestCase1Parameter1"]);
	
	Report.Info("",report);
}

Beispiele Daten aus DataSource der aktuellen Iteration eines TestCase

Hier wird die aktuelle Zeile aus dem DataSource des aktuellen TestCase gelesen.

private void GetAllTestCaseDataContext()
{
	string report = string.Empty;
	Ranorex.Core.Data.Row currentrow = TestCase.Current.DataContext.CurrentRow;
	IDictionary<string, string> crow = currentrow.ToDictionary();
	
	report = "Current TestCase DataContext";
	foreach(KeyValuePair<string, string> col in crow)
	{
		report += string.Format("{2}Key='{0}'; Value='{1}'", col.Key, col.Value, Environment.NewLine);
	}
	
	Report.Info("",report);
}

Eine bestimmte Spalte aus der aktuellen Zeile vom DataSource

private void GetSpecifiedTestCaseDataContext()
{
	string report = string.Empty;
	
	report = "Specified TestCase DataContext";
	report += string.Format("Value from Spalte1: {0}", TestCase.Current.DataContext.CurrentRow["Spalte1"]);
	
	Report.Info("",report);
}

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.