A depuração do código de proxy é uma parte essencial do processo de desenvolvimento do proxy para a determinação de problemas. O código de proxy que contém o arquivo JAR ou o arquivo de montagem .Net com a extensão .dll é carregado no processo AUT (aplicativo em teste). Para depurar o código de proxy, conecte o respectivo depurador ao processo AUT depois que os arquivos binários do proxy forem carregados no AUT.
Implementando Logs para Depuração de Código do Proxy
O Functional Tester fornece uma infra-estrutura de log
que você pode usar enquanto depura o código de proxy desenvolvido.
A classe FTDebug está disponível nas estruturas de desenvolvimento de proxy Java e .Net.
Você pode instanciar um objeto da classe FTDebug para cada classe de proxy e registrar qualquer informação, aviso ou mensagem de erro categoricamente.
Antes de depurar o código de proxy, desempenhe as seguintes tarefas:
Salve a versão de depuração dos arquivos binários do proxy no diretório de customização e reinicie o Functional Tester.
No caso de Java, ative o JRE que o AUT usa com o ativador do Functional Tester.
No caso de .Net, inicie o AUT .Net e grave um clique em qualquer controle usando o Functional Tester para ativá-lo para teste.
Nota: O arquivo .dll de montagem de proxy é carregado apenas quando o primeiro clique é gravado em aplicativos Windows® e .Net. Os aplicativos Windows e .Net são ativados dinamicamente para teste. No caso de Java, a Ferramenta do Configurador de Aplicativos ativa o AUT.
Configurando o Tempo Limite de Chamada
A depuração de proxies é sensível a tempo e a chamada atinge o tempo limite depois de dois minutos, por padrão. Para ajustar o tempo limite para a depuração, inclua o valor DWORD, InvocationTimeout, em milissegundos em HKEY_LOCAL_MACHINE\SOFTWARE\Rational
Software\RationalTest\8\Options no registro do Windows. Um tempo limite durante a depuração lança um exceção SpyMemory MutexTimeout.
Depurando Registro
O método getChildAtPoint() é o ponto de entrada para a depuração do proxy para gravação. Qualquer ação do usuário chama o método processMouseEvent(), mesmo antes que o AUT veja o evento. O Functional Tester processa as ações do usuário, por exemplo, a ação é um clique ou arrastar e, de acordo com a especificação do método, os argumentos são gerados. Para melhores resultados, use esses métodos para iniciar a inserção de pontos de interrupção.
Depurando Reproduções
O método getMappableChildren() é o ponto de entrada para a depuração do proxy para reprodução. Durante o desenvolvimento do proxy, a maioria dos problemas ObjectNotFound que ocorrem resulta de uma incompatibilidade entre a hierarquia de objeto que a gravação produz e a hierarquia produzida durante a reprodução. Certifique-se de que os métodos getMappableParent() e getMappableChildren() sejam simétricos.