Zum Implementieren der Datenkorrelation während der Ausführung müssen Sie die Klasse, die die Klasse com.ibm.rational.test.lt.kernel.action.KAction erweitert, so konfigurieren, dass ein Aufruf an die Datenkorrelationssteuerkomponente ausgelöst wird.
Vorbereitende Schritte
Für die Implementierung der Datenkorrelation müssen Sie mit den folgenden Klassen vertraut sein:
- com.ibm.rational.test.lt.datacorrelation.execution.harvest.IDataHarvester
- com.ibm.rational.test.lt.datacorrelation.execution.sub.IDataSub
- IDataCorrelationVar
- com.ibm.rational.test.lt.datacorrelation.execution.proto.IProtoActionAdapter
Beschreibungen zu Klassen und Methoden finden Sie in den Javadoc-Informationen.
Informationen zu diesem Vorgang
Über die Schnittstelle
IKAction wird die Basisfunktionalität definiert, die für alle Kernel-Aktionen implementiert werden muss. Bei der Schnittstelle
IKAction handelt es sich um die Basisschnittstelle für alle Kernel-Aktionen. Bei den Aktionen kann es sich um Schleifen, Bedingungen oder andere Codekonstrukte handeln.
Für die Implementierung der Datenkorrelation bei Ausführung werden Ihre Harvester und Substitute vom Codegenerator in Container geschrieben. Für die Implementierung der Datenkorrelation bei Ausführung müssen Ihre Harvester und Substitute vom Codegenerator in Container geschrieben werden. Dazu werden beim Umsetzen Ihrer Aktion bei der Codegenerierung Aufrufe für die Methoden LTTestTranslator.translateHarvesterContainer() und LTTestTranslator.translateSubstituterContainer() abgesetzt. Beide Methoden sind im Plug-in com.ibm.rational.test.lt.codegen.core enthalten. Diese Container müssen Sie zu Ihrer Aktion hinzufügen und mit der Aktion speichern. Bei Ausführung Ihrer Aktionen müssen die Container mit Substituten und Datenquellen aufgerufen werden. Der Container mit den Substituten wird zu Beginn Ihrer Aktion vor der Übertragung von Daten aufgerufen. Der Container mit den Datenquellen wird am Ende Ihrer Aktion nach Empfang der Daten aufgerufen.
Vorgehensweise
So implementieren Sie den Ausführungsteil der Datenkorrelation:
- Erweitern Sie einen Erweiterungspunkt in codegen.core, um Ihre für die Ausführung verwendete Schnittstelle IProtoActionAdapter für die Wiedergabe registrieren zu lassen:
- Erweitern Sie den Erweiterungspunkt DataCorrelationProtoAdapter im Paket com.ibm.rational.test.lt.codegen.core. Verwenden Sie für die Erweiterung das Plug-in, das als Erweiterung zum Plug-in com.ibm.rational.test.lt.datacorrelation.execution fungiert und die Schnittstelle IProtoActionAdapter implementiert.
- Geben Sie dem Plug-in com.ibm.rational.test.lt.datacorrelation.execution sowohl die zu bearbeitenden Klassen des Typs IKAction als auch den Namen Ihres Plug-ins an.
- Anschließend wird Ihnen oberhalb Ihres generierten .java-Codes eine Zeichenfolge ähnlich der folgenden angezeigt:
pa.addPA("com.ibm.rational.test.lt.sdksamples.datacorrelation.execution.socket.SocketActionAdapter",
"com.ibm.rational.test.lt.sdksamples.protocol.socket.io.SocketSend");
Bei der ersten Zeichenfolge handelt es sich um den Namen der Klasse, über die der IProtoActionAdapter implementiert wird. Bei der zweiten Zeichenfolge handelt es sich um den Namen der KAction, für die die Klasse IProtoActionAdapter aufgerufen wird. Achten Sie sorgfältig auf korrekte Schreibweise.
- Zum Implementieren der Plug-in-Erweiterung datacorrelation.execution muss von Ihrem Plug-in die Schnittstelle com.ibm.rational.test.lt.datacorrelation.execution.IProtoActionAdapter implementiert werden. Vom Basis-Plug-in com.ibm.rational.test.lt.datacorrelation.execution wird diese Schnittstelle dazu verwendet, Ihr Plug-in aufzurufen und die Informationen zur Implementierung abzurufen.
Anmerkung: Dabei handelt es sich auch um das Plug-in, über das die Klasse DataCorrelationProtoAdapter im Erweiterungspunkt codegen erweitert wird.
- Verwenden Sie zum Starten des Substitutionsprozesses in der Methode IDataSub.substituteData() Aktion und Hashtabelle als Parameter.
- Von der aktuell aktiven Aktion wird die Methode com.ibm.rational.test.lt.datacorrelation.execution.sub.IDataSub.substituteData() aufgerufen. Über den Container mit den Substituten werden alle Substitutionsregeln ausgeführt. Anschließend werden die neuen Zeichenfolgewerte (ausgelesen aus den Datenkorrelationsvariablen) in die Hashtabelle eingereiht. Der erste Wert der Hashtabelle lautet "propertyType", der zweite Wert ist die komplette neue Zeichenfolge für "propertyType". Bei Ausführung der Substitution wird die komplette Zeichenfolge entsprechend angepasst.
- Anschließend wird die Steuerung vom Container mit den Substituten wieder an die Schnittstelle IKAction übergeben.
- Von der Schnittstelle IKAction werden die Zeichenfolgewerte aus der Hashtabelle ausgelesen und in die entsprechenden Bereiche übertragen.
- Zum Starten des Daten-Harvesting wird von der derzeit aktiven Aktion die Methode IDataHarvester.harvestData() aufgerufen. Anschließend geht die Aktion in den Container über.
- Vom Daten-Harvester wird das Plug-in aufgerufen, durch das das Plug-in zur Datenkorrelationsausführung dahingehend erweitert wurde, dass die Zeichenfolgewerte abgerufen werden, auf die die Harvestingregeln angewendet werden müssen.
- Vom Daten-Harvesting-Container werden die ermittelten Werte in die Datenkorrelationsvariablen eingesetzt. Diese Datenkorrelationsvariablen werden dann bei späteren Substitutionsausführungen verwendet.