corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Guia do desenvolvedor para BPEL Designer: Testando e depurando processos BPEL

Conteúdo

O conteúdo desta página se aplica ao NetBeans 6.0

Guia do desenvolvedor para BPEL Designer

Testando um processo BPEL

Testar uma aplicação de processo comercial implantada 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.

Simplificando, o processo de interação é o seguinte: o tempo de execução do mecanismo de serviço BPEL recebe a mensagem SOAP e cria uma instância do processo BPEL e começa a executar a 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 uma aplicação de processo comercial implantada, é 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.

Criando e executando um caso de teste

Para obter os resultados do teste, você deve adotar o seguinte procedimento:

  1. Adicionar um caso de teste e vinculá-lo a uma operação BPEL.
  2. Configurar as propriedades do teste.
  3. Personalizar a entrada do teste.
  4. Executar o testador.

Todas as etapas dessa seção pressupõem que:

Adicionando/Vinculando um caso de teste

Para adicionar um caso de teste e vinculá-lo a uma operação BPEL:

  1. Na janela Projetos do IDE, abra o projeto de aplicação composta para exibir a pasta Teste.
  2. Clique com o botão direito do mouse em Teste e escolha o item do menu pop-up Novo caso de teste.
    Isso inicia o assistente para Novo caso de teste.
  3. Na etapa Inserir o nome do caso de teste, insira um nome para o caso de teste e clique em Próximo.
  4. Na etapa Selecionar o documento WSDL, abra o projeto do módulo BPEL, selecione o arquivo .wsdl que contém a operação que você deseja testar e clique em Próximo.
  5. Na próxima etapa, selecione a operação que deseja testar e clique em Terminar.
    Na árvore do projeto, em Testar, é criada uma nova pasta na forma de um T maiúsculo, contendo dois arquivos: Input.xml e Output.xml.

Observação: se visualizou o caso de teste na janela Arquivos, deveria ver Concurrent.properties como um terceiro arquivo.

Definindo as propriedades de teste

Para definir as propriedades de teste:

  1. Na janela Projetos, sob o nó do projeto de aplicação composta, clique com o botão direito do mouse no nó do caso de teste e escolha Propriedades no menu pop-up.
  2. Defina as propriedades do caso de teste da seguinte forma:
    Descrição: string
    Texto inserido pelo usuário para que saiba do que se trata o teste.
    Destino: URL (da marca <soap:address location="THIS"> do arquivo .wsdl)
    Identifica o local do serviço Web a ser testado.
    SoapAction (padrão: vazio)
    Arquivo de entrada (somente leitura; gerado pelo sistema)
    Nome do arquivo de entrada. Esse arquivo contém os dados de entrada do caso de teste.
    Arquivo de saída (somente leitura; gerado pelo sistema)
    Nome do arquivo de saída. Esse arquivo contém os dados de saída do caso de teste.
    Segmentos simultâneos: inteiro; padrão = 1
    Cada thread pode chamar o caso de teste várias vezes (veja a propriedade seguinte). Portanto, se conc=2 e inv=3, o caso de teste será executado 6 vezes (dois segmentos, cada um é executado três vezes).
    Chamadas por thread : inteiro; padrão = 1
    Número de vezes em que cada thread chama o caso de teste.
    Tempo-limite do teste(seg): inteiro; padrão = 30
    Em quanto tempo cada thread tem que finalizar. Se não finalizar no tempo designado, será lançada uma exceção.
    Calcular taxa de transferência: booleano
    Se a caixa de verificação estiver marcada, as estatísticas do resultado serão calculadas. Exemplo: se um teste especificar dois segmentos e três chamadas por thread, e se o teste levar 15 segundos para as 6 chamadas, as estatísticas reportarão uma média de 2,5 segundos cada.
    Tipo de comparação : lista suspensa com as seguintes opções:
    • idêntico: considera a saída e a saída real como um fluxo de caracteres.
    • binário: considera a saída e a saída real como um fluxo de bytes.
    • igual: considera a saída e a saída real como um documento XML.
    Status do recurso : lista suspensa com as seguintes opções:
    • andamento: marca a conclusão do teste como "êxito", independentemente da saída real.
    • concluído: registra a saída real do teste.

Personalizando entrada de teste

Para personalizar a entrada do teste:

  1. Na janela Projetos, expanda o nó Teste e o nó de um caso de teste específico.
  2. Clique com o botão direito do mouse em Input.xml e clique em Editar.
  3. Modifique o conteúdo, se necessário. Por exemplo, onde você vir <value>?string?</value> clique em ?string? e substitua por uma string de qualquer tamanho. Entretanto, em tais seqüências, não inclua os caracteres < (sinal menor que) ou & (e comercial) a não ser que você os use com a semântica XML.
  4. Quando você estiver satisfeito, clique em Salvar.
  5. Clique com o botão direito do mouse em Output.xml e clique em Editar para examinar o conteúdo:
    • Está vazio. Esse é um estado especial que aciona uma operação especial quando o teste é executado.
    • Cada vez que o teste é executado, a saída atual é comparada com o conteúdo de Output.xml. Se forem detectadas quaisquer diferenças, elas serão armazenadas no arquivo Actual_yymmddhhmmss.xml na pasta do caso de teste. Entretanto, no caso especial em que o Output.xml começa nulo, a saída é gravada em Output.xml.
    • Em cada execução após a primeira, presumindo-se que Output.xml não é mais nulo, seu conteúdo é preservado. Em outras palavras, uma saída anterior nunca é sobrescrita por novos resultados.

Executando o testador

Para executar um único caso de teste:

  • Na janela Projetos, expanda o projeto de aplicação composta > Testar, clique com o botão direito do mouse no nó do caso de teste específico e escolha Executar.
Para executar todos os casos de teste em um projeto:
  • Clique com o botão direito do mouse no projeto de aplicação composta e escolha Testar projeto no menu pop-up.

Examinando os resultados do caso de teste

  • A primeira execução reporta corretamente que o teste falhou. Isso acontece porque a saída produzida não corresponde ao arquivo Output.xml (vazio), e o conteúdo nulo do arquivo é substituído pela saída da primeira execução.
  • Os resultados do teste são mostrados na janela de resultados de teste JUnit, que se abre automaticamente quando você executa um caso de teste.
  • Se você executar o teste novamente sem alterar a saída, a segunda execução e as subseqüentes reportarão êxito, já que a saída corresponde ao conteúdo de Output.xml.
  • Se você alterar o valor no Input.xml e executar o teste novamente, então:
    • Se a propriedade recurso-status estiver definida como progresso, o teste indicará êxito mesmo que uma discordância tenha ocorrido.
    • Se a propriedade recurso-status for definida como concluída, o teste indicará falha.
  • Se você clicar com o botão direito do mouse no nó do caso de teste e clicar em Comparação no menu pop-up, a janela exibirá a diferença entre a saída mais recente e o conteúdo de Output.xml.

início


Depurando processos BPEL

A depuração de processos BPEL segue os mesmos princípios gerais da depuração de aplicações Java. A depuração de processos BPEL implica em configurar pontos de interrupção no código-fonte e executar o processo passo a passo durante uma sessão de depuração. O depurador BPEL representa visualmente a execução de um processo BPEL e permite que você visualize e altere as variáveis, monitore os resultados das expressões executadas e use pontos de interrupção de falha para monitorar o estado das variáveis antes que uma falha seja lançada.

Etapas da depuração de processos BPEL

As etapas principais da depuração de processos BPEL são:

  1. Confirme que o servidor da aplicação GlassFish tenha sido iniciado.
  2. Crie casos de teste.
    Para processos de amostra, os casos de teste são criados automaticamente; para novos projetos, você precisa criar pelo menos um caso de teste.
  3. Abra o arquivo do processo BPEL na visualização Código-fonte ou Design.
  4. Defina os pontos de interrupção no código ou no diagrama. Opcionalmente, adicione inspeções para expressões XPath em seu processo ou adicione pontos de interrupção de falha.
  5. 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.
  6. Em uma sessão de depuração, execute um ou vários casos de teste.
  7. Visualize a execução dos processos BPEL no diagrama na visualização Design ou na janela Execução de processo BPEL e visualize a execução de instâncias dos processos BPEL janela Instâncias do processo BPEL.
  8. Quando uma instância pára em um ponto de interrupção, passe pelo código ou diagrama, examine os valores das variáveis na janela Variáveis BPEL, ou observe os valores das expressões XPath na janela Inspeções.
  9. 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. Somente uma sessão de depuração pode ser executada no mecanismo de serviço BPEL em uma determinada hora.

Depois que uma sessão de depuração BPEL começa, você pode executar instâncias do processo passo a passo, inspecionando os valores das variáveis BPEL e as expressões XPath nas janelas Variáveis BPEL e Inspeções. Você pode monitorar a execução de um processo BPEL em uma sessão do depurador no diagrama na visualização Design: as atividades que estão sendo executadas são realçadas no diagrama conforme a posição de execução atual avança. A janela Execução do processo BPEL também mostra a execução do processo BPEL.

Para preparar o ambiente de depuração:

  1. Na janela Serviços, verifique se o servidor da aplicação GlassFish V2 está em execução. O servidor da aplicação está em execução, caso possua subnós e esteja marcado com um triângulo verde.
    Se o servidor não tiver sido iniciado, clique com o botão direito do mouse nele e escolha Iniciar no menu pop-up. Para obter detalhes sobre como iniciar o servidor da aplicação, consulte a seção Mecanismo de serviço BPEL.

    O servidor da aplicação está em execução

  2. Defina os pontos de interrupção no processo BPEL.
    • Para definir pontos de interrupção na visualização Código-fonte, clique ao lado da linha em que você deseja definir o ponto de interrupção.

      Defina um ponto de interrupção na fonte

    • Para definir pontos de interrupção no diagrama, alterne para a visualizaçã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.

      Elemento Diagrama com um ponto de interrupção

    • O comando de menu Alternar ponto de interrupção também está disponível para os elementos na visualização Lógica do navegador BPEL. Para os elementos com pontos de interrupção, o navegador mostra uma pequena caixa vermelha (ReceiveItinerary):

      Elemento Navegador com um ponto de interrupção

  3. 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.

    Defina um ponto de interrupção na fonte

Para iniciar uma sessão de depuração no mecanismo BPEL:

  • Na janela Projetos, clique com o botão direito do mouse no projeto da aplicação composta que você deseja depurar e escolha Depurar projeto (BPEL) no menu pop-up.
    O IDE estabelece uma sessão de depuração no mecanismo do serviço 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 as janelas seguintes no Console do depurador BPEL:
    11:35:17 Conectando ao localhost:3343
    11:36:19 Sessão de depuração iniciada

Observe que o comando Depurar projeto (BPEL) realiza as seguintes ações:

  • Ativa a depuração no mecanismo de serviço BPEL (define a propriedade DebugEnabled do mecanismo de serviço BPEL como true)
  • Constrói o projeto de aplicação composta e todos os módulos JBI adicionados a esse projeto
  • Implanta o projeto de aplicação composta no mecanismo de serviço BPEL
  • Inicia a sessão de depuração, conectando o depurador BPEL ao mecanismo de serviço BPEL

Portanto, sempre que você inicia uma sessão de depuração, pode ter certeza que a versão mais recente do processo BPEL é implantada no mecanismo do serviço BPEL.

Agora você pode executar um caso de teste e monitorar a execução do processo BPEL antes de parar ou alcançar um ponto de interrupção. Conforme o processo avança, o contexto atual é exibido no diagrama e na janela Execução do processo BPEL.

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 Terminar 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 Terminar todos.

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 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). Passa na próxima atividade BPEL. À medida que você prossegue, o indicador da linha atual avança, a posição atual é realçada no diagrama e o conteúdo da janela do depurador BPEL se altera. A etapa é aceita somente na granularidade de uma "atividade" em termos de idioma do BPEL, não em uma granularidade melhor.
  • Executar até o cursor (F4). Executa o processo BPEL na posição selecionada na janela Navegador (visualização Lógica BPEL), no diagrama (na visualização Design) ou na localização do cursor na visualização Código-fonte. Quando a localização do cursor é alcançada, a instância do processo fica suspensa.

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.

Monitorando a execução de processos BPEL

Quando um processo em execução alcança um ponto de interrupção, a visualização Design realça a posição atual do depurador e usa cores para diferenciar entre os estados das atividades BPEL. Conforme o processo avança, as cores e os ícones das atividades no diagrama são atualizados para refletir o andamento da execução.

No diagrama, é usada a notação seguinte:

  • Cor verde (brilhando). O ponto de interrupção definido para a atividade é alcançado.
  • Cinza cor (efeito acinzentado). A atividade nunca foi executada.
  • Triângulo verde A atividade está sendo executada agora.
  • Triângulo azul. A atividade foi concluída com êxito.

Monitorando a depuração no diagrama

Você também pode monitorar a execução das instâncias atuais do processo BPEL na janela Execução do processo BPEL (veja abaixo).

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, Variáveis BPEL e Execução do processo BPEL contêm informações relacionadas aos processos BPEL que estão sendo executados na sessão de depuração atual.

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 Pontos de interrupção e Inspeções são janelas padrão do depurador do IDE. Elas exibem todos os pontos de interrupção e inspeções definidos no IDE.

Janela Sessões

A janela Sessões lista todas as sessões de depuração abertas, incluindo sessões de depuração Java e BPEL. Para o mecanismo de serviço BPEL, somente uma sessão pode ser iniciada. Entretanto, a janela Sessões também exibe outras sessões de depuração abertas, tais como sessões Java. Somente uma das sessões de depuração abertas pode ser atual e ela é mostrada em negrito. Outras janelas do depurador, tais como Instâncias do processo BPEL, Execução do processo BPEL e Variáveis BPEL, exibem somente os dados relacionados à sessão de depuração atual.

Você pode realizar as seguintes ações nas sessões disponíveis no menu pop-up:

  • Tornar atual. Torna atual a sessão selecionada.
  • Terminar. Finaliza a sessão selecionada.
  • Terminar tudo. Finaliza todas as sessões de depuração.

Janela Sessões

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 de serviço BPEL durante a sessão de depuração atual.

As informações exibidas para cada instância do processo incluem o nome da instância, o ID exclusivo da instância e seu estado. As instâncias do processo podem estar em um dos seguintes estados:

  • Em execução. A instância está atualmente sendo executada no mecanismo de serviço BPEL.
  • Suspenso. A instância foi suspensa por algum motivo. Por exemplo, a instância do processo alcançou um ponto de interrupção.
  • Desconhecido.O status da instância é desconhecido.

Os comandos seguintes estão disponíveis no menu pop-up de uma instância do processo:

  • Tornar atual. Torna atual a instância selecionada do processo. Os dados em outras janelas Depurador BPEL se alteram de acordo.
  • Retomar. Retoma as instâncias suspensas do processo.
  • Finalizar. Termina a instância selecionada do processo.

Janela Instâncias do processo BPEL

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.

A estrutura as variáveis locais é mostrada como uma árvore. As informações fornecidas para cada variável incluem o nome e o valor da variável.

Na janela Variáveis BPEL, você pode fazer o seguinte:

  • Visualizar a estrutura da variável. Para fazê-lo, expanda o nó da variável na árvore.
  • Visualizar e editar os valores das variáveis. Para editar o valor de uma variável, clique no botão de reticências (...) e digite o novo valor na janela do editor.

Janela Variáveis BPEL

Janela Inspeções

A janela Inspeções mostra a 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.

Janela Inspeções

Janela Execução do processo BPEL

A janela Execução do processo BPEL representa geograficamente o andamento da execução da instância do processo BPEL atual no depurador BPEL. Quando você altera a instância do processo atual, a árvore do processo na janela Execução do processo BPEL é atualizada para refletir o estado da nova instância do processo atual e da nova posição atual.

Na janela Execução do processo BPEL, as cores seguintes são usadas para exibir o estado das atividades BPEL:

  • Verde. A atividade está sendo executada no momento.
  • Cinza. A atividade nunca foi executada.
  • Preto. A atividade foi executada.

Janela Execução do processo BPEL

Observação: na janela Execução do processo BPEL, você só pode ver o andamento dos processos BPEL em execução. Você não pode realizar ações nessa janela.

Mensagens do console do depurador BPEL

Você pode ver as mensagens seguintes no console do depurador BPEL:

Conectando a <host>:<port>
O depurador está tentando se conectar ao mecanismo de serviço BPEL.
Sessão de depuração iniciada
O depurador se conectou com êxito ao mecanismo de serviço BPEL e a sessão de depuração foi iniciada.
Impossível iniciar uma sessão de depuração : impossível conectar a <host>:<port> : Tempo-limite de conexão: conectar
Se aparecer essa mensagem, verifique o seguinte:
  • O servidor da aplicação GlassFish V2 está em execução.
  • O mecanismo de serviço BPEL foi iniciado.
  • A propriedade DebugEnabled do mecanismo de serviço BPEL está definida como verdadeira.
  • O nome do host é o mesmo da máquina que executa o servidor da aplicação GlassFish V2 ao qual você está se conectando (localhost por padrão).
  • O valor da porta é o mesmo da propriedade DebugPort do mecanismo de serviço BPEL ao qual você está se conectando (3343 por padrão).
Impossível iniciar uma sessão de depuração : já existe uma conexão a <host>:<port>
Já existe uma sessão de depuração em execução anexada a este mecanismo de serviço específico.
Sessão de depuração finalizada : Target disconnected
O depurador perdeu a conexão com o servidor. Verifique se o servidor está em execução e se a rede está funcionando.
Parar conexão
Você terminou explicitamente a sessão de depuração quando ela estava se conectando.
Sessão de depuração finalizada
Você terminou explicitamente a sessão de depuração quando ela estava em execução.


início

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems