Configuración de la prueba de funciones de servicio

La función de prueba de capacidades se diseñó para ejecutarse en el servidor web de desarrollador de App Engine con fines de pruebas. Te permite cambiar el estado de los servicios, como almacén de datos, Blobstore, etc., para determinar si tu aplicación se comporta de forma correcta cuando se encuentra con los distintos estados posibles del servicio. Por ejemplo, si cambias el estado del servicio de almacén de datos a inhabilitado, puedes probar si tu app puede controlar la falta de disponibilidad del almacén de datos de forma estable.

Hay varias formas de usar la característica de prueba de capacidades:

Cambia el estado de las capacidades con la consola

Para cambiar las funciones en la consola, haz lo siguiente:

  1. Una vez que la app se ejecute en el servidor de desarrollador, visita la URL /_ah/admin en tu servidor para acceder a la consola, por ejemplo: http://localhost:8888/_ah/admin.
  2. En la consola, haz clic en Capabilities Status, que se encuentra en la parte inferior izquierda.
  3. En la página Configuración del estado de las capacidades, localiza el servicio o los servicios que tu aplicación usa y los estados que deseas cambiar. Luego, haz clic en el menú desplegable al lado del nombre del servicio y selecciona el estado que quieres probar en ese servicio:

Los servicios reflejarán la configuración que elegiste la próxima vez que tu app acceda a ellos. Ejecútala y observa su comportamiento.

Cambia el estado de las capacidades con la línea de comandos

Si usas Eclipse, puedes establecer una o más capacidades con las opciones de depuración de la línea de comandos.

Para cambiar la configuración de las capacidades con los argumentos de la línea de comandos de VM en Eclipse, haz lo siguiente:

  1. Procura tener Eclipse abierto; luego, selecciona tu proyecto, haz clic derecho y selecciona Depurar como > Configuración de depuración.
  2. Dirígete a la pestaña Argumentos y, luego, ingresa la opción deseada en el cuadro de texto argumentos de VM. El formato de la opción es el siguiente:

    -Dcapability.status.capabilityname.*=statusname

    En el ejemplo anterior, capabilityname se reemplaza por el nombre del servicio (consulta Nombres de funciones [del servicio]), y statusname se reemplaza por el estado de la función que quieres usar (consulta Valores de estado de función).

    Nota: Para la función de escritura del almacén de datos, reemplaza capabilityname por datastore_v3, y el asterisco (*) por write, de la siguiente manera: Dcapability.status.datastore_v3.write. Para otras funciones, deja el asterisco como se muestra.

    En la captura de pantalla a continuación, se muestran dos capacidades (imágenes y almacén de datos) inhabilitadas desde la línea de comandos:

  3. Haz clic en Aplicar para guardar los cambios
  4. Haz clic en Depurar para ejecutar tu app con esa configuración.

Nombres de capacidad (del servicio)

Nombre de capacidad en la API Nombre de capacidad que se muestra en Console Descripción
blobstore BLOBSTORE El servicio de Blobstore
datastore_v3 DATASTORE El servicio de Datastore para consultas
datastore_v3,write DATASTORE_WRITE El servicio de Datastore para solicitudes de escrituras
images IMAGES El servicio de imágenes
mail MAIL El servicio de correo electrónico
memcache MEMCACHE El servicio de Memcache
taskqueue TASKQUEUE El servicio de lista de tareas en cola
urlfetch URLFETCH El servicio de urlfetch

Valores de estado de capacidad

Valores de estado para todas las capacidades Descripción
DISABLED La capacidad está inhabilitada.
ENABLED La capacidad está disponible y no hay mantenimientos planeados.
SCHEDULED_MAINTENANCE La capacidad está disponible, pero tiene un mantenimiento programado.
UNKNOWN Se desconoce el estado de este servicio.

Cambia el estado de las capacidades con la API de funciones

Para usar la característica de prueba de capacidades de servicio local en la API, debes usar la clase LocalCapabilitiesServiceTestConfig. Para obtener más información y un código de muestra, consulta Escribe pruebas de funciones de servicio local.