Visão Geral de Testes do Serviço Assíncrono

Serviços assíncronos utilizam um padrão de interação de retorno de chamada para as comunicações entre objetos. Serviços assíncronos podem ser utilizados, por exemplo, em sistemas de publicação-assinatura que são oferecidos por fornecedores de middleware orientado por mensagens ou em domínios de gerenciamento de sistema e dispositivo.

Serviços WS-Notification

Serviços assíncronos são padronizados nas especificações WS-Notification:

É possível testar serviços da web e serviços XML que implementam a especificação WS-Notification criando uma solicitação assíncrona dentro de um teste. O pedido assíncrono contém as interfaces para a especificação WS-Notification correspondente, junto com uma estrutura de retorno de chamada.

Serviços Assíncronos Proprietários

Você pode testar serviços assíncronos proprietários que não implementam especificações WS-Notification. Para testar esses serviços, você cria manualmente um pedido de serviço que contém as interfaces para o serviço e, então, é possível incluir a estrutura de retorno de chamada assíncrono no pedido.

Os dados XML do pedido assíncrono devem conter um terminal que especifique a URL do receptor do retorno de chamada. Durante o teste, esse terminal é utilizado para redirecionar o retorno de chamada para o testador em vez de para o receptor real.

Estrutura de Retorno de Chamada

Para testar serviços assíncronos, você deve criar uma estrutura de pedido assíncrono em seu teste, conforme mostrado no seguinte diagrama:

Exemplo de estrutura de pedido assíncrono
Uma solicitação de serviço da web ou uma solicitação XML simples fornece a ação de assinatura e contém um elemento de retorno de chamada que descreve o comportamento do teste em três estados:
  • Paralelo contém elementos de teste que são executados após o pedido de assinatura e durante a espera da resposta de notificação.
  • Recebimento contém elementos de teste que são executados quando a resposta de notificação é recebida do serviço.
  • Tempo Limite contém elementos de teste que são executados se a resposta de notificação não for recebida após um atraso ser especificado no elemento de retorno de chamada.

Quando tudo que está contido nos elementos paralelo, recebimento e tempo limite tiver sua execução concluída, a execução continuará com o próximo elemento no teste após o pedido assíncrono.

O método para gerar a estrutura de retorno de chamada assíncrona no teste depende se os serviços assíncronos utilizam a especificação WS-Notification:
  • Serviços WS-Notification: Crie o pedido assíncrono no teste.
  • Serviços de proprietários: Crie manualmente uma solicitação de serviço da web ou solicitação XML no teste e, depois, inclua a estrutura de retorno de chamada assíncrono na solicitação.

Feedback