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.
- Adicionar um repórter de resultados
- Repórter de resultados e registros
- Resumo do repórter de resultados
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.
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.
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.