Testar um aplicativo de processo comercial implantado envolve o uso de casos de teste que agem como serviços de parceiro remotos, que enviam mensagens de SOAP para o tempo de execução do mecanismo de serviço BPEL.
O tempo de execução do mecanismo de serviço BPEL recebe a mensagem de SOAP e cria uma instância do processo BPEL e inicia a execução da instância. Um processo BPEL pode ter muitas instâncias em execução. O tempo de execução do mecanismo de serviço BPEL recebe uma mensagem e, usando correlação, roteia a mesma para a instância apropriada do processo. Se uma instância ainda não existir, uma nova instância será criada.
Para realizar a execução de teste de um aplicativo de processo comercial implantado, é preciso configurar os casos de teste para agirem como serviços de parceiro remotos que enviarão mensagens de SOAP para o tempo de execução do mecanismo de serviço BPEL.
A depuração de processos BPEL segue os mesmos princípios gerais da depuração de aplicativos Java. A depuração de processos BPEL é realizada através da configuração de pontos de interrupção no código-fonte ou no diagrama, e a execução do processo passo a passo durante uma sessão de depuração.
Etapas da depuração de processos BPEL
As etapas principais da depuração de processos BPEL são:
-
Certifique-se de que o servidor de aplicativos Sun Java esteja em execução.
-
Certifique-se de que a propriedade do mecanismo BPEL DebugEnabled está definida como verdadeira.
-
Abra o processo BPEL na exibição Fonte ou Design.
-
Defina os pontos de interrupção no código ou no diagrama. Como opção, adicione inspeções para expressões XPath em seu processo.
-
Inicie uma sessão de depuração. Inspecione a janela Console do depurador BPEL para obter confirmação de que a sessão de depuração já começou.
-
Na sessão de depuração, exiba as instâncias em execução dos processos BPEL na janela Instâncias do processo BPEL, examine os valores das variáveis na janela Variáveis BPEL e observe os valores das expressões XPath na janela Inspeções.
-
Quando uma instância parar em um ponto de interrupção, percorra o código ou o diagrama por etapas para examinar sua execução.
-
Finalize a sessão de depuração.
Iniciando e finalizando uma sessão de depuração BPEL
Uma sessão de depuração começa quando você conecta o depurador BPEL ao mecanismo de serviço BPEL. Apenas uma sessão de depuração pode ser executada no mecanismo de serviço BPEL.
Depois que uma sessão de depuração começa, você pode executar as instâncias do processo passo a passo, inspecionando os valores da instância do processo e/ou os valores das expressões XPath.
Para preparar o ambiente de depuração:
-
Na janela Tempo de execução, certifique-se de que o Servidor de aplicativos Sun Java System está em execução. O servidor de aplicativos está em execução, caso possua subnós e esteja marcado com um triângulo verde.
-
Defina pontos de interrupção na fonte BPEL
-
Para definir pontos de interrupção na exibição Fonte, clique ao lado da linha em que você deseja definir o ponto de interrupção.
-
Para definir pontos de interrupção no diagrama, alterne para a exibição Design, clique com o botão direito do mouse no elemento e escolha Alternar ponto de interrupção no menu pop-up.
Um quadrado vermelho é mostrado na parte superior do elemento com um ponto de interrupção.
-
O comando de menu Alternar ponto de interrupção também está disponível para os elementos na exibição Lógica do navegador BPEL. Para os elementos com pontos de interrupção, o navegador mostra um quadrado vermelho pequeno, como o mostrado na captura de tela (ReceiveItinerary):
-
Como opção, você pode adicionar inspeções para monitorar expressões XPath. Para adicionar uma inspeção, copie a expressão XPath que você deseja monitorar, escolha Executar > Adicionar inspeção, no menu principal, e cole a expressão no campo Expressão de inspeção. Clique em OK.
Observação: Você também pode adicionar expressões XPath que não existem no código, mas seriam válidas do ponto de vista da depuração.
-
Na primeira vez que você fizer a depuração, defina a propriedade do mecanismo BPEL DebugEnabled como verdadeira:
-
Na janela Tempo de execução, expanda Servidores > Servidor de aplicativos Sun Java System > Mecanismos de serviço .
-
Clique com o botão direito do mouse no nó com.sun.bpelse-1.0-2 e escolha Propriedades
-
Defina DebugEnabled como verdadeiro
Para iniciar uma sessão de depuração no mecanismo BPEL:
-
Escolha Executar > Anexar depurador.
-
Na caixa de diálogo Anexar, selecione Depurador BPEL como o tipo de depurador.
-
Garanta que o nome do host é localhost e a porta é 3343.
-
Clique em OK.
O IDE estabelece agora uma sessão de depuração no mecanismo BPEL. Observe a janela Console do depurador BPEL para confirmação. A conexão pode levar algum tempo para ser concluída. Quando tiver sido concluída com êxito, você verá a nova sessão na janela Sessões e a seguinte mensagem no Console do depurador BPEL:
22:17:55 Conectando ao localhost:3343
22:17:55 Sessão de depuração iniciada
Se houver várias sessões de depuração (é possível ter uma sessão de depuração Java sendo executada ao mesmo tempo), e se você quiser alterar a sessão atual, clique duas vezes no nome dessa sessão na janela Sessões. Como alternativa, clique com o botão direito do mouse na sessão que você deseja tornar atual e selecione Tornar atual.
Essa sessão se torna atual e as janelas Instâncias do processo BPEL, Inspeções e Variáveis BPEL são atualizadas para mostrar os dados relacionados à nova sessão atual.
Quando você quiser finalizar uma sessão de depuração, abra o menu pop-up dessa sessão que você deseja parar e escolha Finalizar na janela Sessões ou selecione Concluir sessão do depurador na barra de ferramentas. É exibida uma mensagem informando que a sessão de depuração está concluída no Console do depurador BPEL.
Para finalizar todas as sessões de depuração, na janela Sessões, clique com o botão direito do mouse em qualquer sessão e escolha Finalizar todos.
Janelas do depurador BPEL
Quando uma sessão de depuração começa, o IDE exibe as janelas do depurador abaixo da área de edição do IDE. As janelas Sessões, Instâncias do processo BPEL, Inspeções e Variáveis BPEL contêm informações relacionadas aos processos BPEL que estão sendo executados na sessão de depuração atual.
Observação: Se não for exibida uma janela do depurador, escolha Janela > Depuração > BPEL > nome da janela (por exemplo, Janela > Depuração > BPEL > Variáveis BPEL).
As janelas Pilha de chamadas, Pontos de interrupção e Inspeções são padrão no depurador do IDE. A janela Pilha de chamadas não é usada na depuração de processos BPEL, você pode ignorá-la. A janela Pontos de interrupção reflete todos os pontos de interrupção definidos no momento no IDE, incluindo aqueles dos processos BPEL. A janela Inspeções lista todas as expressões que você especificou para observar durante a depuração.
Para alternar entre as janelas do depurador, clique na guia com o nome da janela.
Janela Sessões
A janela Sessões lista todas as sessões de depuração, incluindo sessões de depuração Java e BPEL, que estão em execução no momento no IDE. Apenas uma sessão pode ser iniciada no Mecanismo BPEL e somente uma sessão pode ser a atual (essa sessão é mostrada em negrito). Outras janelas do depurador, tais como Instâncias do processo BPEL, Inspeções e Variáveis BPEL, exibem instâncias do processo, expressões e variáveis relacionadas somente à sessão de depuração atual.
As informações fornecidas para cada sessão incluem:
-
Nome. O nome da sessão.
-
Estado. As sessões podem estar iniciando ou em execução.
-
Idioma. O idioma do aplicativo depurado nesta sessão.
Você pode realizar as seguintes ações nas sessões disponíveis no menu pop-up:
-
Tornar atual. Torna a sessão selecionada atual.
-
Finalizar. Finaliza a sessão atual.
-
Finalizar todos. Finaliza todas as sessões de depuração.
Janela Instâncias do processo BPEL
A janela Instâncias do processo BPEL lista todas as instâncias do processo BPEL que estão sendo executadas no mecanismo BPEL durante a sessão de depuração atual. Se a sessão atual não for uma sessão do depurador BPEL, esta janela ficará vazia. A janela Instâncias do processo BPEL é preenchida quando uma sessão de depuração é iniciada no mecanismo BPEL ou uma sessão do depurador BPEL se torna atual.
As informações exibidas para cada instância do processo incluem o nome da instância e seu estado. As instâncias do processo podem estar em um dos seguintes estados:
-
Concluído. A instância foi concluída no mecanismo de serviço BPEL.
-
Em execução. A instância está atualmente sendo executada no Mecanismo BPEL.
-
Suspenso. A instância foi suspensa por alguns motivos, por exemplo, a instância do processo atingiu um ponto de interrupção.
-
Desconhecido. O status da instância é desconhecido.
Janela Variáveis BPEL
A janela Variáveis BPEL mostra a lista das variáveis e os seus valores para a instância do processo e posição atuais. A posição atual é o local em que a instância do processo atual se torna suspensa. Quando você altera a instância do processo atual, os registros na janela Variáveis BPEL são atualizados para refletir as variáveis da nova instância do processo atual e da nova posição atual.
As informações fornecidas para cada variável incluem o nome e o valor da variável.
Janela Inspeções
A janela Inspeções mostra uma lista de expressões XPath que você deseja monitorar. Você adiciona inspeções explicitamente antes ou durante a sessão de depuração. A janela Inspeções mostra a expressão e o seu valor. O valor da expressão pode se alterar conforme o processo avança, dependendo da lógica do seu processo.
Usando pontos de interrupção para depurar processos BPEL
Os pontos de interrupção são usados para instruir o depurador a suspender a execução de um processo naquele local do código-fonte. Quando um processo BPEL atinge um ponto de interrupção, ele fica suspenso e você pode realizar operações de depuração, tais como examinar os valores de variáveis ou passar por seu código.
Para exibir e organizar todos os pontos de interrupção definidos atualmente no IDE, abra a janela Pontos de interrupção, escolhendo Janelas > Depuração > BPEL > Pontos de interrupção (Alt-Shift-5). Para cada ponto de interrupção, você pode ver o nome do arquivo de origem e a linha em que esse ponto de interrupção se localiza.
Depois de definir os pontos de interrupção em seu processo BPEL e iniciar uma sessão de depuração, qualquer instância do processo que atinja um ponto de interrupção fica suspensa. Você pode exibir o status das instâncias do processo na janela Instâncias do processo BPEL.
Para depurar uma instância do processo que tenha alcançado um ponto de interrupção:
Uma vez suspensa a execução de uma instância do processo, escolha os seguintes comandos no menu Executar ou na barra de ferramentas:
-
Continuar (Ctrl-F5). Faz com que a instância do processo atual seja executada até que encontre o próximo ponto de interrupção ou até que a instância seja concluída. O estado da instância muda para Em execução.
-
Passar dentro (F7). Vai para a próxima atividade do BPEL. A entrada é aceita somente na granularidade da Atividade em termos de idioma do BPEL, não em uma granularidade melhor. Conforme você entra, o indicador da linha atual ou a posição no diagrama avançam, e conseqüentemente o conteúdo das janelas Variáveis BPEL e Inspeções se alteram.
-
Concluir sessão do depurador (Shift-F5). Finaliza a sessão de depuração atual.
Você pode remover um ponto de interrupção do código-fonte BPEL, colocando o cursor na linha com o ponto de interrupção e escolhendo Executar > Alternar ponto de interrupção, ou clicando na margem esquerda da linha que contém o ponto de interrupção. Como alternativa, no diagrama, você pode clicar com o botão direito do mouse no elemento que possui o ponto de interrupção e escolher Alternar ponto de interrupção no menu pop-up.