FeaturesPluginsDocs & SupportCommunityPartners

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


Conteúdo

Guia do desenvolvedor para BPEL Designer


Testando um processo BPEL

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.

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:

  • Você já tenha criado um projeto do módulo BPEL contendo um arquivo .wsdl que codifica a operação que deseja testar.
  • Você tenha criado com êxito o projeto do módulo BPEL.
  • Você tenha adicionado o projeto do módulo BPEL a um projeto de aplicativo composto como um módulo JBI.

Adicionando/vinculando um caso de teste

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

  1. Na guia Projetos do IDE, abra o projeto de aplicativo composto 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 Finalizar.
    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.

Se você visualizou o caso de teste na guia Arquivos, deveria ver Concurrent.properties como um terceiro arquivo.

Definindo as propriedades de teste

Para definir as propriedades de teste:

  1. Clique com o botão direito do mouse e escolha o item do menu pop-up Propriedades.
  2. Defina as propriedades do caso de teste da seguinte forma:
    Descrição: seqüência
    Texto inserido pelo usuário para que saiba do que se trata o teste.
    Destino: URL (da marca <soap:address location="ESTE"> do arquivo .wsdl)
    Identifica o local do serviço da Web a ser testado.
    SoapAction (padrão: vazio)
    Arquivo de entrada (somente leitura; gerado pelo sistema)
    Nome do arquivo de entrada.
    Arquivo de saída (somente leitura; gerado pelo sistema)
    Nome do arquivo de saída.
    Segmentos simultâneos: inteiro; padrão = 1
    Cada segmento 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 segmento: inteiro; padrão = 1
    Número de vezes em que cada segmento chama o caso de teste.
    Tempo-limite do teste (segundos): inteiro; padrão = 30
    Em quanto tempo cada segmento tem que finalizar. Se não finalizar no tempo designado, será lançada uma exceção.
    Calcular resultado: booleano
    Se a caixa de seleção estiver marcada, as estatísticas do resultado serão calculadas. Exemplo: Se um teste especificar dois segmentos e três chamadas por segmento, 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:
    • 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:
    • progresso: 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 árvore do projeto, clique com o botão direito do mouse em Input.xml e clique em Editar.
  2. Modifique seu conteúdo conforme desejar. Por exemplo, onde encontrar <value>?string?</value> clique em ?string? e substitua por uma seqüência 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.
  3. Quando você estiver satisfeito, clique em Salvar.
  4. Clique com o botão direito do mouse em Output.xml e clique em Editar para examinar seu 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 ao conteúdo de Output.xml; quaisquer diferenças detectadas 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 árvore do projeto, clique com o botão direito do mouse na pasta do caso de teste e escolha Executar.
Para executar todos os casos de teste em um projeto:
  • Selecione o projeto e pressione Alt-F6 (você também pode clicar com o botão direito do mouse no projeto e escolher o item de menu pop-up Testar projeto).

Examinando os resultados do caso de teste

  • A primeira execução reporta corretamente que o teste falhou: 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.
  • 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 em meuCasodeteste1 e clicar no item do menu pop-up Dif, a janela exibirá a diferença entre a saída mais recente e o conteúdo de Output.xml. Para examinar os resultados dos testes anteriores, você pode escolher na lista suspensa de arquivos Actual_yymmddhhmmss.xml, e clicar no botão Atualizar.

superior


Depurando processos 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:

  1. Certifique-se de que o servidor de aplicativos Sun Java esteja em execução.
  2. Certifique-se de que a propriedade do mecanismo BPEL DebugEnabled está definida como verdadeira.
  3. Abra o processo BPEL na exibição Fonte ou Design.
  4. 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.
  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. 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.
  7. 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.
  8. 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:

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

    O servidor de aplicativos está em execução

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

      Defina um ponto de interrupção na fonte

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

      Defina um ponto de interrupção no diagrama

      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 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):

      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

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

      Mecanismo de serviço BPEL

    • Defina DebugEnabled como verdadeiro

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

  1. Escolha Executar > Anexar depurador.
  2. Na caixa de diálogo Anexar, selecione Depurador BPEL como o tipo de depurador.
  3. Garanta que o nome do host é localhost e a porta é 3343.
  4. 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.



superior

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by