Para implementar a correlação de dados durante
a execução, configure sua classe que estende a classe com.ibm.rational.test.lt.kernel.action.KAction para acionar uma chamada para o mecanismo de correlação de dados.
Antes de Iniciar
Antes de implementar a correlação de dados, familiarize-se com as
seguintes classes:
- 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
Consulte as informações do Javadoc para obter descrições de classe e método.
Sobre Esta Tarefa
A interface
IKAction
define a funcionalidade básica que todas as ações de kernel devem implementar. A interface
IKAction
é a interface de base para todas as ações de kernel. As ações podem representar loops, condições ou outras construções
de código.
Para implementar a correlação de dados durante a execução, o codegen grava
seus provedores de serviço e substitutos nos contêineres.
Para implementar a correlação de dados na hora da execução, o codegen precisará gravar seus provedores de serviço e substitutos nos contêineres. Isso é feito chamando LTTestTranslator.translateHarvesterContainer() e LTTestTranslator.translateSubstituterContainer() na hora do codegen, quando você está convertendo sua ação. Esses dois métodos estão no plug-in com.ibm.rational.test.lt.codegen.core. Esses contêineres precisam
ser incluídos na ação e armazenados com a ação. Esses contêineres
devem ser incluídos e armazenados com a ação. Quando as ações estiverem sendo executadas, elas devem
chamar esses contêineres de substituto e origem de dados. O contêiner de substituto
é chamado no começo da ação, antes do envio de dados, e o contêiner de origem de dados é chamado no final da ação, após o recebimento dos
dados.
Procedimento
Para implementar a parte de execução da correlação de dados:
- Você deve estender um ponto de extensão em codegen.core para ter a execução IProtoActionAdapter registrada para reprodução:
- Estenda o ponto de extensão DataCorrelationProtoAdapter no
pacote com.ibm.rational.test.lt.codegen.core. Para fazer a extensão,
utilize seu plug-in que é a extensão para o plug-in com.ibm.rational.test.lt.datacorrelation.execution
que implementa a interface IProtoActionAdapter.
- Informe ao plug-in com.ibm.rational.test.lt.datacorrelation.execution
quais tipos de IKAction devem ser manipulados e o nome do plug-in.
- Ao concluir, você deve ver algo semelhante ao seguinte
incluído próximo ao topo do código .java gerado:
pa.addPA("com.ibm.rational.test.lt.sdksamples.datacorrelation.execution.socket.SocketActionAdapter",
"com.ibm.rational.test.lt.sdksamples.protocol.socket.io.SocketSend");
A primeira cadeia deve ser o nome da classe que implementa o IProtoActionAdapter e a segunda cadeia deve ser o nome de KAction, para a qual a classe IProtoActionAdapter deve ser chamada. Seja cuidadoso com a ortografia, pois tem que estar correta.
- Para implementar a execução do plug-in datacorrelation.execution,
seu plug-in precisa implementar a interface com.ibm.rational.test.lt.datacorrelation.execution.IProtoActionAdapter. O plug-in com.ibm.rational.test.lt.datacorrelation.execution principal
utiliza a interface para chamar seu plug-in e para obter as informações para a
implementação.
Nota: Este é também o plug-in que estende a classe DataCorrelationProtoAdapter
no ponto de extensão codegen.
- Para iniciar o processo de substituição, no método IDataSub.substituteData(),
utilize a ação e o mapa de hash como parâmetros.
- A ação atualmente ativa chamará o método com.ibm.rational.test.lt.datacorrelation.execution.sub.IDataSub.substituteData(). O contêiner de substituição executa todas as regras de substituição e
coloca os novos valores de cadeia (ler nas variáveis de correlação) no
hashMap. O primeiro valor de hashMap é propertyType e o segundo valor é toda a nova cadeia para propertyType.
Então, ao concluir a substituição, toda a cadeia é corrigida.
- O contêiner de substituto retorna o controle para a interface IKAction.
- A interface IKAction lê os valores de cadeia do mapa de
hash e os envia para os lugares apropriados.
- Para iniciar a colheita de dados, a ação que está ativa atualmente chama
o método IDataHarvester.harvestData(). A ação transmite a si própria
para o contêiner.
- O colhedor de dados chama o plug-in que estendeu o plug-in de execução de correlação
de dados para obter os valores de cadeia aos quais as regras de colheita
precisam ser aplicadas.
- O contêiner do colhedor de dados coloca os valores colhidos em
variáveis de correlação de dados. Essas variáveis de correlação de dados serão então
utilizadas em execuções substitutas posteriores.