¿Cómo prueban los equipos de aplicaciones móviles el control de calidad de las conexiones deficientes de los teléfonos celulares?

Como Dima mencionó, el modo avión es un excelente lugar para comenzar. Puede poner su dispositivo en modo avión antes de tomar medidas que activen las actualizaciones de la red, y luego tomar la acción, ver cómo responde mientras espera, y luego sacarlo del modo avión y ver cómo responde después de reconectarse. Esperemos que su aplicación tenga la lógica para volver a intentar y sincronizar correctamente.

Para profundizar en las pruebas en el dispositivo, recomiendo configurar una red wifi acondicionada. Puede hacer esto con su Mac en cinco pasos (pero necesita un cable de red):

1. Conecte un cable Ethernet a su Mac (puede que necesite usar un adaptador Thunderbolt)
2. Instale el acondicionador de red XCode [1]
3. Comparte tu wifi desde tu Mac [2]
4. Conecte su dispositivo al wifi de su Mac
5. Mientras usa su aplicación, cambie la configuración del Acondicionador de red (fuera de línea, malo, bueno, etc.)

Linux tiene más herramientas de acondicionamiento y captura / inspección de paquetes que Mac. Puede configurar una caja wifi de Linux dedicada con tc (netem) y tcpdump para llevar esta idea al siguiente nivel.

[máquina wifi]

Un resultado de estas pruebas podría ser repensar partes de su aplicación como tareas en segundo plano más asíncronas. Otro podría ser construir algunos cachés locales.


En el pasado me he preguntado un par de preguntas relacionadas:

– ¿Hay alguna forma de condicionar fácilmente la conexión en red de su aplicación para que coincida con las experiencias de los usuarios reales? Establecer algunos argumentos de acondicionador de cubo es bueno, pero sería genial saber que estoy probando los casos de borde derecho.
– Por lo tanto, probablemente la mayoría de los desarrolladores manejarán los escenarios de red defectuosos de manera similar. ¿Existe una forma común de hacerlo que la gente pueda moverse y contribuir?

Esto me hizo pensar en construir una mejor biblioteca de red. Entonces comencé a construirlo. Puedes ver lo que estoy construyendo en https://github.com/nextopio/next….

Las ideas centrales con este proyecto de código abierto son:
– Cambie los valores predeterminados de la entrega de mensajes para que sus solicitudes no se pierdan nunca. Hasta que se entrega un mensaje, se vuelve a intentar. Utiliza algunas técnicas inteligentes para evitar el bloqueo de la cabeza de línea sin que usted haga nada. Y siempre puedes cancelar un mensaje.
– Abra la puerta a nuevos protocolos en un marco que puede recurrir sin problemas a HTTP / HTTPS. Entonces, tenga un cliente que pueda probar algo nuevo, si eso falla, recurra a algo confiable, sin estropear su backend. Si has visto los primeros resultados de HTTP / 2, entonces sabes que las cosas son emocionantes. Un mejor formato de cable puede hacer mucho para que las aplicaciones sean más utilizables en redes defectuosas.
– Cree un mejor protocolo para todas las redes.

Así que aquí estoy el perfil en mi aplicación, usando una vista de depuración de Nextop, porque todos mis protocolos se basan en una Wire.Factory [4] que me permite ingresar y dar forma al tráfico con datos reales.


En resumen, creo que necesitamos mejores herramientas.

¡Espero que ayude!

1. Acondicionador de enlace de red
2. Preferencias -> Compartir -> Compartir Internet -> Compartir su conexión desde Ethernet -> A computadoras que usan WiFi
3. https://github.com/nextopio/next…

A2A.

No soy un experto, pero puedo pensar en dos enfoques.

  1. Nativo. Use algunas funciones del teléfono para emular una conexión deficiente. O póngalo en modo avión, conecte un cable y emule una conexión pobre allí.
  2. Externo. Escriba código adicional en el lado de su aplicación para emular más del 90% de pérdida de paquetes, junto con una enorme latencia.

Facebook (compañía) solo (hace un par de semanas) abrió una herramienta que han estado utilizando para este propósito específico. Es de uso gratuito y configurarlo tampoco tomará mucho tiempo.

Control de tráfico aumentado: una herramienta para simular condiciones de red

Gracias por el A2A.

Las aplicaciones que pueden funcionar perfectamente con buenas señales pueden tener dificultades cuando faltan paquetes. Por lo tanto, es esencial que los desarrolladores prueben las aplicaciones contra conexiones deficientes.

Para los dispositivos iOS, Apple ofrece algo llamado Network Link Conditioner.

Acondicionador de enlace de red

Esta es una herramienta que puede simular la pérdida de paquetes y otros problemas asociados con una conectividad deficiente.

Para Android, no creo que Google proporcione una herramienta, pero hay servidores proxy de red de terceros que hacen algo similar.

Pruebe HeadSpin, le permite realizar pruebas en redes celulares reales en más de 50 países a nivel mundial, desde la silla de su oficina.

Página de búsqueda de productos: Headspin – Búsqueda de productos

Cual es tu presupuesto ?
Por 100k $ -200k $ puedes comprar un simulador de estación base celular básico donde puedes crear escenarios de baja recepción. Las otras sugerencias en este hilo son sólidas, pero hay algunos casos de esquina que no cubren, su teléfono móvil trabaja un poco más duro cuando pierde recepción: las CPU están más cargadas, la batería se agota más rápido y la pila de red puede comportarse de manera diferente ya que es una pila de IP móvil y no IP normal.