Arquitetura de tradefed

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 um formato XML. Compreender a estrutura da configuração é fundamental para executar e personalizar testes.

Estrutura das configurações de 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

Keystore

Keystore permite a injeção de opções de linha de comando para 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 em execução do Tradefed. Aspectos como status de alocação e status online são monitorados.

Agendador de comando de teste

O agendador de comandos de teste no Tradefed executa comandos, associa-os a dispositivos e inicia uma chamada de teste.

Construir provedor

Construir provedor é a primeira etapa de qualquer chamada de teste. Ele baixa os recursos necessários para configurar e executar os testes (criar imagens, testar APKs e muito mais). Ele também os referencia 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 destino em teste em um determinado estado, por exemplo, piscar o dispositivo, definir determinadas propriedades e conectar-se ao Wi-Fi.

corredor de teste

Um executor de teste no Tradefed refere-se ao objeto responsável pela execução do teste real. Diferentes executores de teste conduzem a execução do teste 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

Reporter 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 reportador de resultados é responsável por converter o formato de resultados Tradefed para o formato de destino.

Esse design flexível permite que qualquer teste seja reportado a qualquer um dos destinos de 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 do teste, 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 de todo o host

Esta seção descreve as configurações aplicáveis ​​à execução completa de uma instância 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.

Sharding negociado

Quando o corpus de teste é grande ou leva muito tempo para ser executado, é possível dividi-lo em vários dispositivos. Referimo-nos a esta divisão como sharding . Esta seção descreve como o sharding funciona e como ele é configurado.

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 do Android de maneira independente da plataforma.

SL4A com detalhes Tradefed

Download da @opção dinâmica

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 obtenha esses arquivos de um local remoto sem passar por um provedor de compilação.

Download da @opção dinâmica