mono del BAD (siete)

一, mono

  . 1, es un medio de prueba de la prueba automatizada plataforma Mono Android por usuario simulación Mono programa toca la pantalla, la diapositiva trackball, teclas de operación y similares para probar la aplicación en el dispositivo, ¿cuánto tiempo durará detecta el programa anormalidad descripción oficial: https: //developer.android.com/studio/test/monkey.html

  2, mono cuándo usar? Y otro de nuestros productos es estable, no hay un número particular de error, la aplicación general de la prueba usando mono para probar la estabilidad, robustez (sea o puede ocurrir flash back, accidente), la antigua máquina de ensayos de fábrica de teléfonos móviles

  3, mono está usando el lenguaje Java escrito en la ruta de almacenamiento en el sistema de archivos de Android es: Programa /system/framework/monkey.jar,Monkey.jar se llama "mono" para iniciar la ejecución de scripts de shell, shell scripts ruta de almacenamiento del sistema de archivos Android es: sistema / / bin / mono

Dos, Mono comando para iniciar el camino 

  . A CMD puede ser realizada por una ventana de PC: adb shell mono {+} parámetros de comando a Monkey prueba

  b. En la adb shell PC en el sistema Android, mediante la ejecución del mono parámetros de comando {+} ser probado Monkey

  c. Realizar máquinas Android comando mono o directamente en el simulador se puede instalar en el emulador de terminal de la máquina Android Android

Tres, mono cuenta

  1, el objeto es solamente un paquete de aplicación de prueba, hay algunas limitaciones.

  2, los datos de flujo de eventos Monky probada usando un aleatorio, no pueden personalizar.

  3, el objeto se puede ajustar MonkeyTest, el número de eventos, el tipo, la frecuencia, etc.

Cuatro, mono comando

  1, adb mono shell -v -p <package_name> 500   

    paquete de objetos -p

         retroalimentación nivel -v

  2, mono Parámetro Descripción: Run adb shell mono -help

    

 

   3, mono Parámetro Descripción

    

 

    

 

     

 

    

 

   4, mono comando de ejecución

    adb shell mono-p com.hst.che --throttle 500 -s 100 --ignore-bloquea --ignore-tiempos de espera --ignore-security-excepciones --ignore nativos-accidentes --monitor-nativo-accidentes -v -v -v 1000> D: \ androide \ monkey_log \ 16v3.txt 

    parámetros:    

      -s: generador de números pseudo-aleatoria de semilla de valor. Si se utiliza la misma semilla correr de nuevo el valor de mono , que va a generar la misma secuencia de acontecimientos.

      --throttle: entre el evento en un retardo fijo. Con esta opción puede ralentizar mono velocidad de ejecución. Si no se especifica esta opción, el mono no se retrasará, el evento se producirá tan pronto como sea posible en.

       -p:  Si este parámetro especifica uno o varios paquetes, mono sólo permitirá que el sistema inicie la bolsa de la actividad . Si su aplicación requiere acceso a paquete adicional de Actividad ( Si usted decide tomar un contacto ) , mientras que los paquetes también necesitan especificar aquí. Si no se especifica ningún paquete,

          Mono permitirá que el sistema para iniciar todo el bolso de actividad . Para especificar varios paquetes necesitan usar múltiples -p opción, cada -p opción sólo se puede utilizar para un paquete.

     --kill-proceso-después-de error:   Por lo general, cuando mono cuando se detiene debido a un error, el error de la aplicación seguirá funcionando. Cuando se establece esta opción, el sistema le notificará detener el proceso se produjo el error.

                  Tenga en cuenta que lo normal ( exitoso ) final, y no hay un proceso de parada y arranque, el dispositivo sólo después de la finalización del evento, sólo tiene que permanecer en el estado final 

    --ignore-tiempos de espera:  En general, cuando la aplicación de cualquier error de tiempo de espera ( tal como "Solicitud No responde" de diálogo ) cuando, Monkey dejará de funcionar. Si se establece esta opción, mono seguirá enviar eventos al sistema hasta que se complete el recuento 

    --ignore-seguridad-excepciones:   En general, cuando se produjo el error de licencia de aplicaciones ( como el inicio de una necesidad de licenciar algunas de Actividad) cuando, mono dejará de funcionar. Si se establece esta opción, mono seguirá enviar eventos al sistema hasta que se complete el recuento

    -v: Cada línea de comandos -v aumentará el nivel de información de retroalimentación. Nivel 0 ( valor por defecto ) , además de la pronta puesta en marcha, y el resultado final de la prueba se completa, para proporcionar menos información. Nivel 1 proporciona información más detallada acerca de la prueba, como el envío de uno en uno a la actividad evento.

      Nivel 2 proporciona una información de configuración más detallada, como la prueba seleccionada no seleccionada o la actividad . El ejemplo siguiente utiliza la "-v -v -v" , representa el más detallado de salida de registro de mono .

   5, un ejemplo

    adb shell mono -p com.xiaomi.sc -v -v -v --throttle 200 -s 1 --ignore-bloquea --ignore-tiempos de espera --ignore-nativo-bloquea --pct-touch 30 100 000 2> / usuarios / admin / escritorio / error.txt 1> /Users/admin/Desktop/info.txt

    

 

     

 

 En quinto lugar, el comando de clase de evento

    1, mono adb shell -f <archivo de guión> <evento de recuento> 

    -f: Después de recibir el nombre de escritura de la prueba, se comprometió a utilizar el mono mono ejecutar el script especificado

    2, mono adb shell -f / mnt / sdcard / test01 3

      Así es 3 se refiere al número de ciclos, no el número de eventos

    3, adb shell mono --pct-touch <ciento>     

      --pct toque: toque seguido por el porcentaje de eventos, el evento táctil se refiere a un evento de abajo-arriba se produjo en un lugar determinado, haga clic en

    4, adb shell mono --pct-Montion <ciento>    

      --pct-motion: el porcentaje de eventos seguida por la acción, la acción se refiere al evento a través de una serie de (evento es decir, hacia arriba) emergente evento pseudo-aleatoria después de la toma sobre (es decir, hacia abajo de eventos) desde una ubicación

    5, adb mono shell --pct-trackball <ciento>     

      --pct-trackball: seguido por el porcentaje de eventos de pista, las pruebas de pista incluyen una serie de movimientos al azar, así como el evento click de vez en cuando para seguir adelante movido

    6, adb shell mono --pct-nav <ciento>    

      --pct-nav: la navegación básica seguido por el porcentaje de eventos, eventos de navegación, principalmente de la dirección básica del dispositivo de entrada, abajo, izquierda, y derecha incidente

    7, adb shell mono --pct-majornav <ciento>

      --pct-marjornav: seguido por el porcentaje de los principales eventos de navegación, el principal desencadenador de eventos de navegación de alguna acción se refiere generalmente a una interfaz gráfica, tal como un intermedio clave teclado, tecla de retorno, una tecla de menú

    8, adb shell mono --pct-syskeys <ciento>     

      --pct-syskeys: la clave del sistema seguido por el porcentaje de eventos, el sistema por lo general se refiere único evento clave retenida en el sistema de llave, tal como la tecla de inicio, la tecla BACK, teclas de marcación, tecla de finalización, una tecla de volumen, etc.

    9, adb shell mono --pct-appswtich <ciento>    

      appswitch --pct-: método de porcentaje seguido por el evento de inicio de la aplicación, el evento de lanzamiento de la aplicación (lanzamientos de actividad) se abre la aplicación, la apertura máxima del paquete en todas las aplicaciones llamando startActivity ()

    10, adb shell mono --pct-AnyEvent <ciento>  

      --pct-AnyEvent: seguido por el porcentaje de otros tipos de eventos, otros eventos se refiere a todos los otros tipos de eventos no cubiertos anteriormente, tales como KeyPress, como el botón inusual

 

 

 

 

     

 

 En sexto lugar, el comando de clase restricción

    restricciones de comandos permite que los eventos aleatorios como correr gama se limita a unas pocas clases o paquetes

    1, adb shell mono -p <-nombre-paquete permitido> <evento de recuento>      

    Seguido del nombre de uno o más paquetes , si el paquete no especifica ninguna, se permitirá que el sistema para iniciar la actividad del mono bolsa entera. se requieren cada uno corresponde -p para un paquete especificado con el una pluralidad ex de paquetes para cada nombre de paquete -p

    2, adb shell mono -c <principal categoría> <evento de contador>   

    -c: seguido del nombre de una o más categorías, mono sólo permite que el sistema para iniciar la actividad de estas categorías una categoría de la lista, si no se especifica ninguna categoría, mono elegirá Intent.CATEGORY_LAUNCHER y Intent.CATEGORY_monkey en la actividad,

    Cada uno corresponde -c para una categoría, especificando cada uno de la pluralidad de la categoría categorías anteriores nombres necesitan añadir -c

 Siete, y comandos de depuración  

    Por la depuración de comandos de clase puede ser simple mono depuración, para que pueda localizar rápidamente el problema mono corriendo    

    1, adb shell mono --dbg-no-acontecimientos <evento de recuento>  

    --dbg-no-eventos: Le permite al conjunto, mono será el arranque inicial en una prueba de actividad no genera más eventos que pueden convertir entre el seguimiento de paquetes de aplicaciones llamada, para un mejor seguimiento , el general voluntad y -v (registro), - p <paquete permitido -nombre> ( limitaciones del paquete)

     Y --throttle <milisegundos> (retardo) y similares en combinación

    2, adb mono shell --hprof <evento de recuento>   

    --hprof: Le permite configurar profilfing informe va a generar la secuencia de los acontecimientos inmediatamente antes y después de que el mono, va a generar sobre el archivo de 5 MB de tamaño en data / misc en

    3, adb mono shell --ignore-choques <evento de recuento>

    -ignore-estrella: Después de este ajuste, cuando una aplicación se bloquea o anomalía fuera de control, mono continuará funcionando hasta que se termine el conteo. Si no establece esta, mono encuentro esta excepción se bloqueará o dejar de correr

    4, adb mono shell --ignore-tiempos de espera <evento de recuento>   

    --ignore-tiempos de espera: Después de este ajuste, cuando se produce cualquier error de tiempo de espera (por ejemplo, la ANR, es decir, aplicación no responde) la aplicación, Monkey continuará funcionando hasta que se complete el cómputo. Si no establece esta, mono  encuentro un tiempo de espera de tales dejará de funcionar

    5, adb shell mono --kill-proceso de post-error <evento de recuento>  

    --kill-proceso-después-de error: Le permite al conjunto cuando se produce un error en la aplicación debido a que el mono se detiene, el sistema notificará al error de detención se produjo en el proceso. Si no se establece el grado de errores de aplicación cuando se produzca esto, parada mono se seguirá funcionando

    6, adb shell mono --ignore-seguridad-excepciones <evento de contador>

    --ignore-seguridad-excepciones: Después de este ajuste, cuando la aplicación de cualquier error de permiso (como el inicio de una actividad requerida algunos privilegios), mono continuará funcionando hasta que se termine el conteo. Si no establece esta, mono encuentro tales errores de permisos dejarán de publicarse

    7, adb shell mono --monitor nativos-choques <evento de recuento>

    --monitor nativos-choques: Le permite al conjunto, se supervisa e informa mono corriendo eventos contracción de código nativo. Si no se establece esta opción, no va a monitorear este tipo de eventos.

    8, adb shell mono --wait-dbg <evento de recuento>

 

    --wait-dbg: Después de ajustar esta suspenderá el mono, hasta que se conecte con el depurador

 

     

 

 Compuesto de ocho, informes de mono

    

  1. La primera parte: comprende una semilla de valor, el número de ejecuciones, el nombre del paquete

    

 

   2, todo el nombre del paquete de aplicaciones en el dispositivo bajo prueba, utilice esta prueba a la que no se utiliza paquetes y qué paquete (una prueba recomendada aplicación , el otro proceso de solicitud de matar)

    

 

 

  3, cada porcentaje caso, sólo el código del evento, no mostró ningún tiempo específico, puede consultar el código fuente mono correspondiente a cada evento, todos los eventos incluyen:

       

  Porcentaje --pct toque {+}

  Ajustar el porcentaje del evento touch (toque el evento es un evento de abajo-arriba, que se produce en una única ubicación en la pantalla)

  adb shell mono -p com.htc.Weather - pct-touch 10 1000

  Porcentaje --pct-motion {+}

  El evento operación de ajuste de porcentaje (un evento operación de una pantalla hacia abajo en algún lugar de eventos, una serie de eventos y una pseudoaleatorio de eventos) adb mono shell -p com.htc.Weather --pct-movimiento 20 1000

  Porcentaje --pct-trackball {+}

  Ajuste el porcentaje de eventos de pista (eventos de pista por uno o composición movimiento más aleatorio, a veces acompañada de clics)

  adb shell mono -p com.htc.Weather - PCT-trackball 30 1000

  Porcentaje --pct-nav {+}

  Ajuste el porcentaje del evento "básica" de navegación (evento de navegación a partir de un dispositivo de entrada por la dirección arriba / abajo / izquierda composición / derecha)

  Porcentaje --pct-majornav {+}

  Ajuste el porcentaje de evento de navegación "primaria" (típicamente inicia la operación de estos interfaz gráfica de evento de navegación, tales como: las teclas de 5 vías intermedias del teclado, las teclas de retroceso, una tecla de menú)

  adb shell mono -p com.htc.Weather - PCT-majornav 50 1000

  Porcentuales --pct-syskeys {+}

  Ajustando el porcentaje del acontecimiento clave "sistema" (estos botones están normalmente reservados para su uso por el sistema, como el hogar, de vuelta, de inicio de llamada, fin de llamada , y las teclas de control de volumen)

  adb shell mono -p com.htc.Weather - PCT-syskeys 60 1000

  Porcentaje --pct-appswitch {+}

  porcentaje de la actividad de inicio ajustada. A intervalos aleatorios en, realizará una llamada startActivity Mono (), un método para todos los paquetes como el máximo grado de cobertura de la actividad

  adb shell mono -p com.htc.Weather - PCT-appswitch 70 1000

   Porcentaje --pct-AnyEvent {+}

  El porcentaje de ajuste otro tipo de evento. Se incluyen todos los otros tipos de eventos, tales como: botones, otros botones del dispositivo de uso menos frecuente, etc.

   Porcentaje --pct -anyevent {+}

  El porcentaje especificar varios eventos

  adb shell mono -p com.htc.Weather - PCT-AnyEvent 50 --pct-appswitch 50 1000

  Nota: el porcentaje total de cada tipo de evento no puede exceder de 100%; inferior de la Forma

  4, incidente específico

  

 

  5, log  

  Si la prueba es satisfactoria ejecución del mono se ha completado, el registro de la última, se imprimirá el número del evento que se está ejecutando y el tiempo que tarda; // representantes del mono ejecución final es completa.

  Si se interrumpe la ejecución del mono, el último registro también se puede ver el número de la actualmente ejecutada. Mono finalización del registro de ejecución de la siguiente manera:

  Eventos inyectan: 6000

  : Eliminado: teclado = 0 punteros = 9 bolas de seguimiento = 0 = 0 flips

  ## las estadísticas de red: tiempo transcurrido = 808384ms (0 ms móviles, 808384ms wifi, 0msnot conectado)

  // mono terminó

En el análisis informe 

  Después de la prueba, el teléfono debe estar conectado al PC, copie los archivos siguientes:

  info.txt: Este SDCARD archivo en el teléfono, registrar los principales eventos enviados cuando las pruebas de mono, tales como la ubicación del evento táctil y así sucesivamente.

  error.txt: Este SDCARD archivo en el teléfono, grabó algunos de los principales ANR genera cuando la prueba mono, obligado a cerrar y otras anormalidades.

  archivo de registro: Esta carpeta de archivo del archivo de registro en el teléfono, en respuesta al caso en que el programa principal de la mayor prueba de registro MONO.

  1. Acceder a buscar palabras clave:

  1) informe de búsqueda de palabras clave "ANR", para ver si el evento aplicación que no responde (La aplicación no responde)

  2) informe de búsqueda palabras clave "choque", para ver si el colapso del evento

  3) Informe de búsqueda de palabras clave "excepción", para ver si otros eventos anormales. (Si aparece un puntero nulo, NullPointerException, necesitan una atención especial

  Pertenecen al mono sus propios problemas. No controles.

  : Envío de tirón keyboardOpen = false

  Tienes IOException realizar flipjava.io.IOException: escritura ha fallado: EINVAL (argumento no válido)

  // Error Inyección

  4) Memoria "GC" (análisis de la búsqueda de fugas)

  2. El análisis preliminar: Después de la error mono, los pasos de análisis generales

  1) en primer lugar encontrar una ubicación de error

  2) la actividad entre los dos interruptor antes de que el error se produce Ver

  3) realizado eventos manualmente, problema recurrente

  4) Si los pasos anteriores no puede ser localizado, se produce un error, no hay valor de la semilla, el mismo valor semilla es de entrada, de acuerdo con la re-carrera hasta que el mono comando

  3. El análisis detallado:

  1) Problema de ANR: buscar la "ANR" log ( "La aplicación no responde"), se describe error, aparecerá el icono de la ANR, en respuesta al hilo principal es típicamente más de 5 segundos, o BroadcastReceiver no responde en 10 segundos. Esto es un grave defecto. Las operaciones que consumen mucho tiempo desde otros hilos para manejarlo.

  2) Análisis de la información específica en el registro:

  Ver registro en el primer interruptor, sobre todo para ver el mono hacer es que una actividad, por ejemplo, el siguiente registro, la ejecución es com.tencent.smtt.SplashActivity ,, si hay un choque entre el próximo swtich u otras anomalías , se pueden encontrar las mentiras de problemas en la actividad.

  : Switch: #Intent; action = android.intent.action.MAIN; categoría = android.intent.category.LAUNCHER; launchFlags = 0x10000000; componente = com.tencent.smtt / .SplashActivity; final

    // Permitir inicio de Intención {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.tencent.smtt / .SplashActivity} en com.tencent.smtt paquete

  3) Pérdida de memoria

  1. Pérdida de memoria se salga de diálogo Memoria

  2. Para una pérdida de memoria, pero no lo hizo sola el caso de la memoria de la caja, la información puede presentar Logcat GC, (GC: mecanismo de recolección de basura de Java)

  GC_FOR_ALLOC: Porque el tiempo no es suficiente memoria para asignar la memoria causado

  GC_EXPLICIT:  espectáculo GC solicitar explícitamente desencadenantes, como las llamadas System.gc,

  GC_CONCCURRENT: mostrar GC en el uso de la memoria alcanza un cierto valor cuando se activa la alerta automática

  GC_BEFORE_OOM:  indica que se produce una excepción de memoria en una máquina virtual antes de oom, se niegan a realizar la última recuperación de la memoria

  pérdidas de memoria 2. Encuentre - informe analiza la memoria (informes de utilización de la memoria de memoria generación de instantáneas hprof parámetros)

  Después de encontrar pérdidas de memoria, se puede realizar el mismo mono, solo un parámetro más --hprof

  adb shell mono -p 包 名 --hprof --throttle 100 --pct-touch 50 --pct-movimiento 50 -v -v -v 1000> c: \ monkey.txt

  Si se especifica esta opción, la aplicación mono generará un archivo de instantánea de memoria antes y después del tiempo de transmisión, archivos hprof usualmente generados en el directorio dispositivos / data / misc móvil. (Nota: / data / misc permisos necesidad de raíces,

  Para instalar dos RE en el teléfono para ver o ver a través de Mobile Assistant)

  PS: La conversión del archivo: Comprobar comando hprof-CONV SDK-herramientas cuando la configuración de prueba mono, el uso -help hprof-CONV entrada de comando de ese archivo en la línea, la conversión directa de la línea por .hprof convertida en .conv formato.

  El archivo convertido con el eclipse de la herramienta Analizador de Memoria (MAT) vista (este plugin se puede descargar), puede hacer clic sospechosos informes-> Fugas enlazan a generar un informe.

   

 

 

 

 

 

 

  

Supongo que te gusta

Origin www.cnblogs.com/hally/p/12632140.html
Recomendado
Clasificación