Arquitetura Tradefed

Esta seção descreve os elementos internos do Tradefed e as relações entre eles. Consulte as subpáginas vinculadas para mais detalhes.

Configurações de teste

As configurações de teste no Tradefed são descritas em um formato XML. Entender a estrutura da configuração é fundamental para executar e personalizar testes.

Estrutura das configurações do TF

Configurações globais do TF

Um arquivo de configuração global é uma configuração XML especial do Tradefed que é carregada quando o Tradefed é iniciado pela variável de ambiente TF_GLOBAL_CONFIG. Ele carrega objetos relacionados ao escopo da instância do Tradefed que afetam o comportamento geral do harness.

Detalhes da configuração global

Keystore

O Keystore permite a injeção de opções de linha de comando no Tradefed de um keystore para evitar a referência direta do valor na linha de comando. Isso pode ser usado para ocultar senhas da linha de comando, recuperando-as diretamente do keystore.

Detalhes do Keystore

Gerenciador de dispositivos

O gerenciador de dispositivos é responsável por acompanhar o estado dos dispositivos em uma instância em execução do Tradefed. Aspectos como o status de alocação e o status on-line são monitorados.

Programador de comandos de teste

O programador de comandos de teste no Tradefed recebe comandos para execução, associa-os a dispositivos e inicia uma invocação de teste.

Provedor de build

O provedor de build é a primeira etapa de qualquer invocação de teste. Ele faz o download dos recursos necessários para configurar e executar os testes (imagens de build, APKs de teste e muito mais). Ele também os referencia em um objeto BuildInfo que será transmitido ao teste. Os recursos disponíveis localmente também podem ser vinculados no objeto BuildInfo.

Preparador e limpador de destino

O preparador de destino oferece ações opcionais que podem ser realizadas para configurar o destino em teste em um determinado estado, por exemplo, fazer o flash do dispositivo, definir determinadas propriedades e conectar-se ao Wi-Fi.

Executor de testes

Um executor de testes no Tradefed se refere ao objeto responsável pela execução real do teste. Diferentes executores de testes conduzem a execução do teste de maneiras diferentes. Por exemplo, um teste de instrumentação será muito diferente de um executor de testes JUnit.

Gerador de relatórios de resultados

O gerador de relatórios de resultados no Tradefed se refere ao objeto que enviará os resultados para um destino específico. Cada implementação geralmente é especializada para diferentes back-ends de resultados. O gerador de relatórios de resultados é responsável por converter o formato de resultados do Tradefed no formato de destino.

Esse design flexível permite que qualquer teste gere relatórios para qualquer um dos destinos de resultados e que mais testes sejam adicionados facilmente de maneira isolada.

Coletor de métricas

O coletor de métricas é um objeto especial no Tradefed, ortogonal à execução do teste. Ele permite a coleta de informações em diferentes pontos do ciclo de vida do teste (por exemplo, início e fim do teste). Como o coletor é dissociado do teste em si, os pontos podem ser trocados, adicionados e removidos sem precisar mudar o teste.

Configuração em todo o host

Esta seção descreve as configurações aplicáveis à execução de uma instância completa do Tradefed. Essas opções afetam o comportamento do harness como um todo para se adaptar a diferentes ambientes, por exemplo, estar em uma rede restrita.

Recursos adicionais

As seções a seguir descrevem o uso geral do Tradefed, em vez de objetos do Tradefed.

Fragmentação do Tradefed

Quando o corpus de teste é grande ou leva muito tempo para ser executado, é possível dividi-lo em vários dispositivos. Essa divisão é chamada de fragmentação. Esta seção descreve como a fragmentação funciona e como ela é configurada.

Detalhes da fragmentação

Como usar o SL4A

O Tradefed oferece suporte à camada de script para Android, SL4A, que é um conjunto de ferramentas de automação para chamar APIs Android de maneira independente da plataforma.

Detalhes do SL4A com o Tradefed

Download dinâmico de @option

Em alguns casos, os arquivos necessários para um teste ou alguma operação específica não estão disponíveis localmente. Esse recurso permite que o Tradefed receba esses arquivos de um local remoto sem passar por um provedor de build.

Download dinâmico de @option