1. L’état du marché de l’industrie des tests
Avec l'évolution de la demande du marché, la plupart des entreprises mettront en avant les exigences pertinentes en matière de tests d'automatisation des interfaces lors du recrutement de testeurs.
À l'heure actuelle, l'architecture logicielle est fondamentalement séparée du front-end et du back-end, et les principales fonctions du logiciel sont assurées par le serveur. Du point de vue de l'ensemble du marché des tests de logiciels, la plupart des testeurs se concentrent toujours sur les tests fonctionnels et les tests d'automatisation de l'interface utilisateur, c'est-à-dire les tests des pages frontales, et n'impliquent pas trop de tests côté serveur. Cependant, en raison de l'augmentation des coûts de développement des logiciels et du cycle de développement et du cycle d'itération raccourcis, seuls les tests de la page frontale ne peuvent plus répondre aux exigences de qualité du logiciel.
L'objet principal des tests côté serveur est l'interface fournie par le serveur, c'est pourquoi on l'appelle également test d'interface. L’avantage du test d’interface est que le test peut intervenir en amont avant que le développement d’une page front-end ne soit terminé. Plus le travail de test est impliqué tôt, plus le coût de résolution des bogues est faible et plus le produit sera stable. Par conséquent, les tests d'automatisation d'interface sont presque devenus le seul moyen de développer des testeurs d'automatisation d'interface utilisateur.
Les tests d'interface sont également divisés en tests d'interface manuels et tests d'automatisation d'interface. Les tests manuels d'interface peuvent généralement être effectués via des outils d'interface tels que posman ou jmeter ; une fois les fonctions d'interface devenues stables, des tests d'automatisation d'interface au niveau du code et une intégration continue peuvent être réalisés.
À en juger par la demande actuelle du marché, la proportion de talents en tests d'automatisation d'interface sur le marché est relativement faible, le salaire est élevé et l'écart du marché est énorme.
Le contenu de cet article est extrait du livre "Interface Automation Test Project: Python 3.8+Requests+PyMySQL+pytest+Jenkins Implementation", qui adopte le mode piloté par projet et établit un cadre de test d'automatisation d'interface basique et pratique via la bibliothèque Python. . La structure du contenu est la suivante :
2. Le système testé sur la base de cet article
Ce livre utilise le système de blog ZrLog (https://www.zrlog.com/) comme système testé.
ZrLog a été choisi pour les raisons suivantes :
Le processus de déploiement est relativement simple et les fonctions et la logique métier ne sont pas compliquées.
Ses ressources d'interface incluent des opérations courantes telles que l'ajout, la suppression, la modification et la vérification, et les données répondues par le serveur sont également au format JSON standard. Ces conditions facilitent l'apprentissage du cadre de test d'automatisation d'interface.
ZrLog dispose de plusieurs méthodes de déploiement, y compris la méthode Docker, qui est utilisée dans ce livre pour le déploiement. Docker est une technologie de conteneur. Un conteneur est un processus exécuté dans un environnement isolé. Si le processus s'arrête, le conteneur sera détruit. Le programme s’exécute dans ce conteneur virtuel, tout comme sur une véritable machine physique. Ainsi, avec Docker, vous n’avez pas à vous soucier des problèmes environnementaux.
3. Extraire les informations de l'interface et les analyser
Le test d'interface consiste principalement à tester les opérations d'ajout, de suppression, de modification et de requête des ressources du serveur. Ainsi, cinq informations d'interface liées à l'ajout, à la suppression, à la modification et à la requête sont extraites du système ZrLog, qui sont l'interface de connexion, la publication d'articles. interface et interface de modification d'article. , interface de suppression d'article, interface d'article de requête. Avant de concevoir des cas de test d'interface, il est nécessaire de procéder à une compréhension et à une analyse préliminaires de ces cinq interfaces, ainsi que de comprendre la relation entre les interfaces, afin de préparer la conception de cas d'utilisation d'interface.
1) Extraction et analyse des informations de l'interface de connexion
La figure 1 montre les informations de l'interface de connexion obtenues via l'outil Fiddler.
Figure 1 Informations sur l'interface de connexion
2) Extraction et analyse des informations d'interface de l'article publié
La figure 2 montre les informations de l'interface de l'article publié obtenues via l'outil Fiddler.
Figure 2 Publication d'informations sur l'interface de l'article
L'analyse des informations de l'interface de publication est la suivante.
À partir des informations présentées dans la figure 2, nous pouvons voir que l'interface de publication d'articles utilise la méthode de requête POST, que le type de données de la requête est au format JSON et transporte des informations sur les cookies, ce qui signifie que l'interface de publication d'articles fait référence au interface de connexion dans les informations demandées. L'ensemble d'informations sur la variable (la variable définie pour la valeur du champ admintoken).
Comme le montre le texte de la demande, la valeur du titre est « payer », ce qui signifie que le titre de l'article publié est « payer ».
D'après le texte de la réponse, nous pouvons voir que lorsque l'article est publié avec succès, le serveur génère un paramètre id, qui est le numéro d'identification de l'article, et l'identifiant de l'article publié cette fois est 1. Mais il faut savoir que ce numéro d’identification est dynamique, car à chaque fois qu’un nouvel article est publié, le numéro d’identification généré est différent. Si l'interface aval souhaite modifier ou supprimer cet article, elle doit citer ce numéro d'identification.
Dans le scénario de test de l'interface, comment faire en sorte que l'interface aval fasse référence aux informations d'identification de l'interface amont ? La valeur de id doit être extraite et placée dans une variable, et l'interface en aval peut se référer directement à cette variable pour obtenir la valeur de id.
3) Modifier l'extraction des informations de l'interface article
La figure 3 montre les informations sur la modification de l'interface de l'article obtenues via l'outil Fiddler.
Figure 3 Modifier les informations de l'interface de l'article
L'analyse des informations de l'interface de l'article modifié est la suivante.
À partir des informations présentées dans la figure 3, nous pouvons voir que l'interface de modification des articles utilise la méthode de requête POST, le type de données de la requête est au format JSON et transporte des informations sur les cookies, ce qui signifie que l'interface de modification des articles fait référence au interface de connexion dans les informations demandées. L'ensemble d'informations sur la variable (la variable définie pour la valeur du champ admintoken).
Comme le montre le texte de la demande, l'article portant l'identifiant 1 est cette fois modifié et le titre de l'article passe de « Paiement » à « Excellence en contribution ». Cependant, comme l'identifiant de l'article change dynamiquement, il est nécessaire de se référer à la variable de l'identifiant définie par l'interface de publication de l'article lors de la modification de l'article.
4) Extraction des informations d'interface de l'article supprimé
La figure 4 montre les informations de l'interface de suppression d'article obtenues via l'outil Fiddler.
Figure 4 Supprimer les informations de l'interface de l'article
L'analyse des informations de l'interface de suppression d'article est la suivante.
À partir des informations présentées dans la figure 4, nous pouvons voir que l'interface de suppression d'articles utilise la méthode de requête POST, le type de données de la demande est au format formulaire et transporte des informations sur les cookies, ce qui signifie que l'interface de suppression d'articles fait référence au interface de connexion dans les informations demandées. L'ensemble d'informations sur la variable (la variable définie pour la valeur du champ admintoken).
Comme le montre le texte de la demande, l'article avec l'identifiant 1 est cette fois supprimé, mais comme l'identifiant de l'article change dynamiquement, la variable définie pour l'identifiant dans l'interface de publication de l'article doit être référencée lors de la suppression de l'article. .
5) Extraction des informations de l'interface de l'article de requête
Le contenu de cette requête est « excellente capacité de paiement », et les articles de requête obtenus via l'outil Fiddler sont connectés à
Les informations sur le port sont présentées dans la figure 5.
Figure 5 Interroger les informations de l'interface de l'article
L'analyse des informations de l'interface de l'article de requête est la suivante.
À partir des informations présentées dans la figure 5, nous pouvons voir que l'interface de suppression d'article utilise la méthode de requête GET, de sorte que le contenu à interroger est directement placé dans l'adresse de l'interface plutôt que dans le corps de la requête. L'interface de l'article de requête contient également des informations sur les cookies dans l'en-tête de la requête, ce qui signifie que l'interface de l'article de requête fait référence aux informations variables définies par l'interface de connexion (la variable définie pour la valeur du champ du jeton d'administration) dans l'en-tête de la requête.
À partir du texte de la réponse, nous pouvons voir que la valeur du champ d'erreur est 0, ce qui signifie que la requête métier a réussi, et que les valeurs des champs total et enregistrements sont toutes deux 0, ce qui signifie que l'article " L'excellence par le travail acharné" a été complètement supprimée et aucune requête n'a été trouvée. Enregistrer.
6) Résumé des associations d'interfaces
Grâce à l’analyse d’interface ci-dessus, les conclusions suivantes peuvent être tirées.
L'interface de publication est associée à l'interface de connexion.
L'interface de modification d'article est associée à la fois à l'interface de connexion et à l'interface de publication d'article.
L'interface de suppression d'article est associée à la fois à l'interface de connexion et à l'interface de publication d'article.
L'interface de l'article de requête est associée à l'interface de connexion.
Enfin, je voudrais remercier tous ceux qui ont lu attentivement mon article. La réciprocité est toujours nécessaire. Bien que ce ne soit pas une chose de très grande valeur, vous pouvez la retirer si vous en avez besoin :
Applet d'entretien de test logiciel
La banque de questions de tests logiciels optimisée par des millions de personnes ! ! ! Qui est qui sait ! ! ! Le mini programme de quiz le plus complet de tout le réseau, vous pouvez utiliser votre téléphone portable pour faire les quiz, dans le métro ou dans le bus, roulez-le !
Les sections de questions d'entretien suivantes sont couvertes :
1. Théorie de base des tests logiciels, 2. Web, applications, tests de fonctions d'interface, 3. réseau, 4. base de données, 5. Linux
6. Web, application, automatisation de l'interface, 7. tests de performances, 8. bases de la programmation, 9. questions d'entretien RH, 10. questions de test ouvertes, 11. tests de sécurité, 12. bases de l'informatique
Ces matériaux devraient constituer l'entrepôt de préparation le plus complet et le plus complet pour les amis [des tests de logiciels]. Cet entrepôt a également accompagné des dizaines de milliers d'ingénieurs de test tout au long du voyage le plus difficile. J'espère qu'il pourra vous aider aussi !