Découvrez comment vous pouvez facilement vérifier la fiabilité et l'intégrité de vos API à l'aide d'étapes codées dans Telerik Test Studio.
Grâce à ses fonctionnalités conviviales, son interface utilisateur intuitive et capacités codées ] Progress Test Studio pour les API est un outil très puissant pour les tests API et peut être un ajout intéressant aux tests en ligne Test Studio .
Les étapes codées améliorent considérablement la capacité de l'application à gérer des scénarios de test complexes. Dans ce blog, je vais vous expliquer comment les utiliser en détail.
Présentation
Assurez-vous de jeter un coup d'œil à la section Fonctions du code de notre documentation . Il fournit des informations détaillées sur les étapes codées et leurs fonctionnalités connexes. Dans ce post, nous allons discuter de la construction d'un exemple simple de bout en bout pour vous aider à démarrer avec des étapes codées et vous donner une perspective plus large de leurs capacités.
Vous pouvez également jeter un coup d'œil au projet qui peut être créé dans Progress Test Studio pour les API. Une partie de ses cas de test montre des exemples d'étapes codées (comme la génération d'un nom d'utilisateur aléatoire, la construction d'un simple test piloté par les données et la réutilisation des classes de code auxiliaires)
Test Studio for APIs supporte deux langages de codage: C # et Visual Basic. Pour les besoins de cet article, nous utiliserons C #. Mis à part les différences de syntaxe, il n'y a pas de différences dans la façon dont les caractéristiques codées sont utilisées dans l'application. C'est pourquoi vous pouvez facilement porter les exemples, fournis ici, vers Visual Basic si vous préférez.
Pourquoi les étapes codées?
Test Studio for APIs est construit à partir de zéro avec l'intention de fournir un accès facile. interface d'utilisation pour construire des cas de test rapides et robustes. Vous pouvez utiliser Définir des étapes de variable avec des expressions de chemin d'accès source et diverses conversions de valeur pour extraire des données de demandes HTTP. Les étapes de vérification fournissent une interface utilisateur puissante pour la construction de vérifications complexes. Les conditions Goto et Wait étapes fournissent les moyens de construire un flux de contrôle personnalisé de vos tests.
Toutes les fonctionnalités ci-dessus vous permettront de construire projets de test complexes sans écrire de code. Pourtant, aucune interface utilisateur pourrait couvrir les possibilités infinies de cas d'utilisation que vous pourriez avoir besoin de mettre en œuvre dans vos projets. Lorsqu'il s'agit de construire une logique de test spécifique, où l'interface utilisateur pourrait ne pas suffire, les étapes codées remplissent tout le reste.
Mise en route
Deux des questions que nous avons reçues jusqu'à présent sont: "Comment puis-je générer un nom d'utilisateur aléatoire?" et "Comment puis-je obtenir le nombre total d'éléments retournés sous forme de tableau JSON?" Voici quelques exemples de cas utiles notre exemple dans cet article. Pour les montrer en action, nous pouvons construire un cas de test qui obtient tous les utilisateurs, stocke leur nombre total pour le moment, crée un nouvel utilisateur avec un nom d'utilisateur aléatoire, et finalement récupère tous les utilisateurs et vérifie que leur nombre a augmenté de un.
Tout d'abord, créons un projet de test avec lequel travailler. Cliquez sur Fichier> Nouveau projet et créez un nouveau projet API. Nommez-le CodedStepsDemo . Cela créera un cas de test par défaut avec une requête HTTP. Ce test est créé chaque fois que vous créez un nouveau projet pour vous aider à démarrer. Habituellement, nous allons le supprimer et créer nos propres tests, mais dans ce cas, l'étape de requête HTTP dans le test par défaut correspond parfaitement à nos besoins.
Cette première étape de requête HTTP fait exactement ce dont nous avons besoin pour commencer: elle récupère tous les utilisateurs existants de l'application de démonstration. retourne une collection JSON avec tous les utilisateurs actuellement enregistrés dans l'application.
Création de la première étape codée
Pour créer votre première étape codée, right- cliquez sur le scénario de test dans l'Explorateur de projet et sélectionnez Ajouter une étape> Étape codée
Ensuite, nous devons accéder au corps de réponse de la dernière requête HTTP de notre code. La classe de base que toutes les classes code-behind implémentent est ApiTestBase . Il expose une propriété Context de type IContext et fournit les méthodes permettant d'accéder aux variables dans le contexte actuel: SetValue () et GetValue () (En savoir plus sur la propriété Context dans notre documentation ).
public void StoreAllUsersCount ()
{
var body = this.Context.GetValue ("Corps");
}
Utilisation d'une bibliothèque externe
Nous devons analyser le contenu JSON du corps de la réponse. Nous pouvons utiliser Json.NET pour cela, mais nous devons ajouter une référence d'assembly à son fichier .dll dans notre projet. Vous pouvez télécharger Json.NET en tant que fichier .zip à partir de ici et extraire le fichier .zip sur votre machine. À partir du répertoire extrait, vous pouvez copier le fichier ". Lib net45 Newtonsoft.Json.dll " et le déplacer vers le dossier souhaité que vous souhaitez faire référence à l'assembly.
pouvez ajouter le fichier d'assemblage dans le dossier de votre projet de test ou dans n'importe quel répertoire de votre machine. Vous pouvez également l'installer dans votre Global Assembly Cache (GAC) . Où que vous décidiez de stocker le fichier d'assemblage, les étapes pour ajouter une référence sont les mêmes:
1. Ouvrez votre projet de test. Faites un clic droit sur l'élément racine de votre projet et sélectionnez Propriétés ou cliquez sur le bouton Modifier les propriétés du projet dans la barre d'outils
Maintenant que nous avons ajouté la référence d'assemblage, nous pouvons utiliser Json.NET dans notre fichier code-behind, pour analyser le corps de la réponse
Réutilisation des éléments de code autonomes
Comme nous aurons besoin du même code plus tard pour une autre étape codée, nous devrions l'ajouter comme méthode réutilisable. Nous pourrions le faire dans une méthode privée dans notre classe code-behind, mais pour la démonstration, je vais le créer dans un fichier d'éléments de code séparé . Les éléments de code sont des fichiers de code distincts qui ne sont pas liés à un scénario de test particulier. Cela les rend utiles pour séparer la logique de code réutilisable (comme les méthodes d'assistance) accessible à partir de chaque classe code-behind.
Je vais créer un dossier séparé dans le projet, appelé Utilities où stockerait tous les éléments de code auxiliaire réutilisables qui ne sont pas spécifiques au contexte pour un cas de test ou une suite de tests (dossier) particuliers. Pour créer un nouvel élément de code cliquez avec le bouton droit sur un dossier (ou la racine du projet) et sélectionnez Ajouter un élément de code .
using System;
en utilisant Telerik.ApiTesting.Framework;
en utilisant Telerik.ApiTesting.Framework.Abstractions;
en utilisant Newtonsoft.Json.Linq;
espace de noms CodedStepsDemo.Utilities
{
Classe publique publique BodyParser
{
public static int GetCollectionCount (corps de chaîne)
{
var parsedBody = JArray.Parse (corps);
return parsedBody.Count;
}
}
}
utilisant le système;
en utilisant Telerik.ApiTesting.Framework;
en utilisant Telerik.ApiTesting.Framework.Abstractions;
en utilisant CodedStepsDemo.Utilities;
espace de noms CodedStepsDemo
{
classe publique CreateNewUser: ApiTestBase
{
public void StoreAllUsersCount ()
{
var body = this.Context.GetValue ("Corps");
var usersCount = BodyParser.GetCollectionCount (body.ToString ());
this.Context.SetValue ("initialUsersCount", usersCount, 0);
}
}
}
Nous allons utiliser la méthode Context.SetValue pour stocker le résultat dans une variable d'exécution nommée initialUsersCount . Notez le dernier argument de l'appel de méthode SetValue : this.Context.SetValue ("initialUsersCount", usersCount, 0);
. L'argument " 0 " définit le contexte de la variable stockée dans le scénario de test actuel. Si vous utilisez " 1 " à la place, cela sauvegardera la variable dans la portée du projet racine et elle sera accessible par tous les cas de test. Actuellement, nous avons seulement besoin de la variable dans le test en cours, nous utiliserons donc " 0 " pour ne pas polluer la portée racine avec des variables inutiles. (Vous pouvez même omettre complètement le " 0 ", car c'est la valeur par défaut de ce paramètre.)
Maintenant que la méthode code-behind est prête, nous pouvons ouvrir l'étape codée et sélectionner la nouvelle méthode
Par souci de brièveté dans les exemples de cette Dans l'implémentation actuelle, si le corps de réponse reçu n'est pas la chaîne de tableau JSON attendue (par exemple, si le serveur de test renvoie un résultat inattendu), son analyse échouera et JSON.Net lancera une exception JsonReaderException Comme l'exception n'est pas gérée dans notre méthode GetCollectionCount elle sera propagée vers le haut et le scénario de test échouera avec une erreur comme celle-ci dans Volet de sortie :
12: 00: 46.497 [ERROR] [FAILED] | 'Coded Step' StoreAllUsersCount '' [44 ms] [3Xx0gPbpRLmGho8yvE7ITX] 'Erro Je lis JArray de JsonReader. L'élément JsonReader actuel n'est pas un tableau: StartObject. Chemin '', ligne 1, position 1. '
using System;
en utilisant Telerik.ApiTesting.Framework;
en utilisant Telerik.ApiTesting.Framework.Abstractions;
en utilisant Newtonsoft.Json.Linq;
espace de noms CodedStepsDemo.Utilities
{
Classe publique publique BodyParser
{
public static int GetCollectionCount (corps de chaîne)
{
essayer
{
var parsedBody = JArray.Parse (corps);
return parsedBody.Count;
}
catch (Exception ex)
{
throw new Exception ("Impossible de récupérer le nombre de collections de 'Body'. Message:" + ex.Message);
}
}
}
}
De cette façon, vous obtiendrez le message suivant dans la sortie du test, qui est un peu plus descriptif:
12: 03: 09.984 [ERROR] [FAILED] | | 'Coded Step' StoreAllUsersCount '' [39 ms] [3Xx0gPbpRLmGho8yvE7ITX] 'Impossible de récupérer le nombre de collections à partir de' Body '. Message: Erreur lors de la lecture de JArray à partir de JsonReader. L'élément JsonReader actuel n'est pas un tableau: StartObject. Chemin '', ligne 1, position 1. '
Génération d'un nom d'utilisateur aléatoire
L'étape suivante consiste à créer un nouvel utilisateur. Nous pourrions simplement créer le nouvel utilisateur avec un nom d'utilisateur codé en dur, mais si vous exécutez ce test deux fois sans effacer l'état de l'application testée, vous obtiendrez une erreur indiquant que l'utilisateur existe déjà. Dans certains scénarios de test, cela correspond au comportement souhaité et vous vous fiez toujours à démarrer vos tests sur un environnement préconfiguré (par exemple, en réinitialisant votre base de données à chaque fois sur un «ensemble de données en or»). Dans d'autres cas, la réinitialisation de l'état de la base de données peut ne pas être appropriée. C'est à ce moment que vous devrez générer un nom d'utilisateur unique (ou un nom de projet, ou toute valeur dont vous pourriez avoir besoin pour être unique). C'est là que les étapes codées peuvent être utiles dans Progress Test Studio pour les API.
Pour générer un nom d'utilisateur unique, nous allons créer une autre étape codée dans le scénario de test. Nommez-le " Générer nom d'utilisateur aléatoire ". Dans l'étape codée, cliquez sur la liste déroulante Méthode et sélectionnez .
Sélectionnez la méthode AssertUserCountIsIncremented dans la dernière étape codée et le scénario de test est terminé et prêt à être exécuté
Dans cet article, nous avons créé un cas de test simple qui utilise des étapes codées pour générer des données aléatoires et analyser le contenu de la réponse JSON. Nous vous avons montré comment accéder au contexte de test pour stocker ou récupérer des variables. Nous avons également créé un élément de code réutilisable pouvant être utilisé par plusieurs tests et montré comment les utiliser dans le code code-behind d'un scénario de test. Vous pouvez télécharger le projet avec les exemples du blog à droite ici . J'espère que cela vous aidera à commencer à utiliser les étapes codées dans Progress Test Studio for API .
N'hésitez pas à partager vos commentaires ou demandes de fonctionnalités avec nous sur notre Feedback Portal
Test Studio for APIs est disponible dans le cadre de Test Studio Ultimate. Essayez-le gratuitement dès aujourd'hui.
Les commentaires sont désactivés en mode prévisualisation.
[ad_2]
Source link