Configuration du test de service des fonctionnalités

La fonctionnalité de test des fonctionnalités est conçue pour s'exécuter sur le serveur Web de développement App Engine à des fins de test. Elle vous permet de modifier l'état de services, tels que le datastore, le blobstore, etc., afin de déterminer si l'application se comporte correctement lorsqu'elle rencontre les différents états possibles du service. Par exemple, la désactivation de l'état du service du datastore permet de vérifier si l'application gère l'indisponibilité du datastore de manière transparente.

Il existe plusieurs façons d'utiliser la fonctionnalité de test des fonctionnalités :

Modifier l'état des fonctionnalités à l'aide de la console

Pour modifier les fonctionnalités de la console, procédez comme suit :

  1. Lorsque votre application s'exécute sur le serveur de développement, accédez à la console en vous rendant sur l'URL /_ah/admin sur votre serveur ; par exemple : http://localhost:8888/_ah/admin.
  2. Dans la console, cliquez sur État des fonctionnalités en bas à gauche de la console.
  3. Sur la page Configuration de l'état des fonctionnalités, localisez le ou les services utilisés par l'application et dont vous souhaitez modifier l'état. Cliquez sur le menu déroulant à côté du nom du service et sélectionnez l'état que vous souhaitez tester sur ce service :

Les services reflètent désormais les paramètres que vous avez choisis la prochaine fois que l'application y accède. Exécutez l'application et observez son comportement.

Modifier l'état des fonctionnalités à l'aide de la ligne de commande

Si vous utilisez Eclipse, vous pouvez définir une ou plusieurs fonctionnalités à l'aide des options de ligne de commande de débogage.

Pour modifier les paramètres des fonctionnalités à l'aide des arguments de ligne de commande de VM dans Eclipse :

  1. Une fois Eclipse ouvert, sélectionnez votre projet, cliquez avec le bouton droit de la souris, puis sélectionnez Déboguer en tant que > Configurations de débogage.
  2. Accédez à l'onglet Arguments et entrez l'option souhaitée dans la zone de texte Arguments de VM. Le format de l'option est :

    -Dcapability.status.capabilityname.*=statusname

    capabilityname est remplacé par le nom du service (consultez la section Noms (de service) des fonctionnalités) et statusname par l'état de la fonctionnalité que vous souhaitez utiliser (consultez la section Valeurs d'état des fonctionnalités).

    Remarque : Pour la fonctionnalité d'écriture du datastore, remplacez capabilityname par datastore_v3 et l'astérisque (*) par write, comme suit : Dcapability.status.datastore_v3.write. Pour les autres fonctionnalités, laissez l'astérisque tel quel.

    La capture d'écran ci-dessous montre deux fonctionnalités (Datastore et Images) désactivées à l'aide de la ligne de commande :

  3. Cliquez sur Appliquer pour enregistrer vos modifications.
  4. Cliquez sur Déboguer pour exécuter l'application avec ces paramètres.

Noms (de service) des fonctionnalités

Nom de la fonctionnalité dans l'API Nom de la fonctionnalité affiché dans la console Description
blobstore BLOBSTORE Service Blobstore
datastore_v3 DATASTORE Service Datastore pour les requêtes
datastore_v3,write DATASTORE_WRITE Service Datastore pour les requêtes d'écriture
images IMAGES Service Images
mail MAIL Service de messagerie
memcache MEMCACHE Service Memcache
taskqueue TASKQUEUE Service TaskQueue
urlfetch URLFETCH Service UrlFetch

Valeurs d'état des fonctionnalités

Valeurs d'état de toutes les fonctionnalités Description
DISABLED La capacité est désactivée.
ENABLED La capacité est disponible, et aucune maintenance la concernant n'est actuellement planifiée.
SCHEDULED_MAINTENANCE La capacité est disponible, mais une période de maintenance la concernant a été planifiée.
UNKNOWN L'état du service est inconnu.

Modifier l'état des fonctionnalités à l'aide de l'API Capabilities

Pour utiliser la fonctionnalité de test des fonctionnalités du service local dans l'API, utilisez la classe LocalCapabilitiesServiceTestConfig. Pour en savoir plus et obtenir un exemple de code, consultez la section Writing Local Service Capabilities Tests (Écrire des tests de fonctionnalités de service local).