Automatizando testes em aplicativos Flash/Flex
a demanda por testes de aplicativos Flash/Flex tornou-se muito mais significativa nos últimos anos. Isso indica o aumento do uso dessa tecnologia, o que, por sua vez, ilustra a necessidade de testes automatizados desses aplicativos. No entanto, essa necessidade levanta algumas questões e problemas, alguns dos quais serão discutidos no artigo a seguir.
especificamente, a primeira pergunta que deve ser respondida sobre a automação de um aplicativo Flash/Flex é: Qual é a técnica de automação correta? Existem duas maneiras distintas de ir:
Mouse nativo & integração de teclado-bom para situações em que há interação Flash mínima necessária.
integração em nível de API-bom para situações em que há muita interação Flash necessária.
Mouse nativo & integração de teclado – é aqui que um movimento do mouse, clique do mouse ou ação do teclado é simulado no nível do sistema operacional. Ele reproduz a simulação de usuário mais realista gravando ações baseadas em GUI, aproximando-nos muito do uso da “vida real” de nosso aplicativo. No entanto, usar este método tem alguns problemas. Por exemplo, testar um aplicativo Flash requer que o aplicativo e o ambiente de teste sejam preparados de uma maneira especial. Existem diferentes maneiras de tornar seu aplicativo Flash testável, dependendo da ferramenta de teste usada e do ambiente de desenvolvimento. Algumas ferramentas, como TestComplete, Rational Robot e QTP, exigem que uma biblioteca dedicada (geralmente fornecida pelo fornecedor da ferramenta) seja incorporada no aplicativo Flash durante a compilação ou no tempo de execução. As especificidades desse processo normalmente podem ser encontradas na documentação dessas ferramentas.
capturar os objetos em um aplicativo Flex / Flash é problemático por conta própria. Para resolver isso, existem duas abordagens principais:
- Capture a tela do dispositivo e use o reconhecimento de imagem para localizar os elementos desejados na tela, automatizando o aplicativo de uma maneira de caixa preta. Berinjela é um bom exemplo de uma ferramenta que utiliza essa abordagem. É também como SilkPerformer opera em um ambiente Citrix.
- analise os objetos que estão sendo usados em Propriedades e use essas propriedades para localizar o objeto. Esta é a mesma abordagem que é usada nos repositórios de objetos do QTP. As propriedades típicas de objetos Flash, como Estado, nome e texto, são usadas para localizar objetos e verificar se certas ações ocorreram. Rational Robot é um bom exemplo dessa abordagem; ele usa 11 pontos de verificação diferentes para verificar se uma determinada ação ocorreu ou verificar o estado de um objeto. Essa abordagem é perfeita para quem deseja simular interações GUI relativamente simples, como clicar no botão “Reproduzir” de um filme ou interagir com uma caixa de diálogo de confirmação, pois em um aplicativo mais complicado essa abordagem tende a falhar.
integração em nível de API – para aplicativos que possuem interfaces de Usuário Flash/Flex muito mais complexas ou aplicativos 100% baseados em Flash, é difícil usar a captura de GUI conforme apresentado, pois pode ser frágil e difícil confirmar que a funcionalidade desejada funcionou. Para isso, pode-se usar a integração de nível de API. Para fazer esse tipo de automação, é preciso poder recompilar/modificar o(S) objeto (s) Flash subjacente (s).
como você proceder a partir daqui depende se você está usando Flash ou Flex, como Flex expõe algumas APIs de automação que, caso contrário, terá que ser reproduzido se você estiver usando Flash puro. Para fazer isso, pode-se: