Trabajar con dispositivos en TF

Trade Federation utiliza una abstracción llamada ITestDevice para ejecutar pruebas. Esta abstracción objetiva el dispositivo Android con el mínimo común denominador:

  • Tiene un numero de serie
  • Tiene un estado: En línea, Disponible, Recuperación o No disponible
  • Tiene cierta noción de confiabilidad. Por ejemplo, si ejecutamos un comando, podemos diferenciar entre el caso en el que el comando aún no ha finalizado, el caso en el que el dispositivo no admite la ejecución de comandos y el caso en el que el dispositivo no responde mientras ejecuta el comando.

Clases de dispositivos

Las tres implementaciones principales de ITestDevice representan tres casos de uso comunes.

Dispositivo físico

Esta es una pieza de hardware real, conectada a la máquina host TF ya sea mediante USB o mediante la función TCP de adb. La clase TestDevice se encuentra encima de la biblioteca ddmlib, que es una interfaz Java para adb. Por lo tanto, se puede crear una instancia de cualquier dispositivo físico enumerado en adb devices y usarlo como TestDevice .

Emulador

TF maneja especialmente los emuladores porque viven en otro proceso. Para interactuar con un emulador, especifique el argumento --emulator para el comando. Consulte LocalSdkBuildProvider y SdkAvdPreparer para obtener más información.

Sin dispositivo

Suponga que tiene una prueba que no interactúa con ningún dispositivo en absoluto. Por ejemplo, podría simplemente descargar un archivo de algún servicio y verificar que el archivo en sí sea válido. NullDevice es un ITestDevice que es solo un código auxiliar. Tiene un número de serie como null-device-N y la mayoría de los intentos de operaciones no funcionan de forma silenciosa o se lanzan.