Arquitetura negociada

Esta seção descreve os aspectos internos do Tradefed e seus relacionamentos. Consulte as subpáginas vinculadas para obter mais detalhes.

Configurações de teste

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

Estrutura das configurações TF

Configurações globais de TF

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

Detalhes da configuração global

Armazenamento de chaves

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

Detalhes do armazenamento de chaves

Gerenciador de Dispositivos

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

Testar agendador de comandos

O agendador de comandos de teste no Tradefed executa comandos, associa-os a dispositivos e inicia uma invocação de teste.

Provedor de compilação

O provedor de compilação é a primeira etapa de qualquer invocação de teste. Ele baixa os recursos necessários para configurar e executar os testes (criar imagens, testar APKs e muito mais). Ele também faz referência a eles em um objeto BuildInfo que será passado para o teste. Os recursos disponíveis localmente também podem ser vinculados no objeto BuildInfo .

Preparador e limpador de alvo

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

Executor de testes

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

Repórter de resultados

O repórter de resultados no Tradefed refere-se ao objeto que enviará os resultados para um determinado destino. Cada implementação geralmente é especializada para back-ends de resultados diferentes. E o repórter de resultados é responsável por converter o formato de resultados do Tradefed para o formato de destino.

Este design flexível permite que qualquer teste seja reportado a qualquer um dos destinos dos resultados e tenha facilmente mais testes adicionados de forma 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 final do teste). Como o coletor é desacoplado do próprio teste, os pontos podem ser trocados, adicionados e removidos sem a necessidade de alterar o próprio teste.

Configuração em todo o host

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

Características adicionais

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

Fragmentação negociada

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

Detalhes de fragmentação

Usando SL4A

Tradefed suporta a camada de script para Android, SL4A; este é um conjunto de ferramentas de automação para chamar APIs Android de maneira independente de plataforma.

SL4A com detalhes Tradefed

Download dinâmico de @opções

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

Download dinâmico de @opções