Orienté efficacité : utilisation de ChatGPT et HttpRunner pour mettre en œuvre des tests automatisés agiles (2) | Équipe technologique JD Cloud

1. Introduction

Dans l'article précédent : Utiliser ChatGPT pour améliorer l'efficacité du travail de test - Un nouvel outil pour les ingénieurs de test (1) , nous avons mentionné comment générer des cas de test à interface unique via chatGPT, puis laisser chatGPT générer des scripts d'automatisation d'interface basés sur les cas de test. Cet article expliquera en détail comment notre équipe utilise le framework Httprunner pour effectuer des tests d'interface automatisés lorsqu'elle rencontre des problèmes commerciaux. Lorsque j'ai récemment rencontré chatGPT, comment ai-je combiné les deux pour réaliser des tests automatisés « agiles » ?

Tout d'abord, le problème rencontré par les tests commerciaux est que pendant le processus de livraison des produits Devops commerciaux, il existe différents environnements sur différents sites clients et au sein de l'entreprise, ainsi que divers systèmes nationaux. Plusieurs clients sont livrés en parallèle, et plusieurs versions doivent être réalisées Tests de régression. Si la régression est effectuée manuellement par des testeurs disposant de ressources humaines limitées, la livraison risque de ne pas être terminée à temps. Comment réaliser rapidement une automatisation d'interface et une régression assistée ?Après sélection interne de l'équipe, le framework HttpRunner a finalement été retenu en fonction de sa rapidité, de sa flexibilité et de sa facilité d'utilisation. En fin de compte, il a été réalisé que dans différents environnements de sites clients, lorsque le personnel d'exploitation et de maintenance termine le déploiement de l'environnement, il peut rapidement mettre en œuvre des tests de régression des fonctions de base, ce qui réduit considérablement le temps de retour des testeurs.

Parlons ensuite en détail de la façon dont nous utilisons Httprunner pour effectuer des tests d'interface automatisés via les trois outils « cliquer », « modifier » et « vérifier ». Le but est d'enregistrer l'interface correspondante en effectuant des opérations commerciales sur le front-end Web, puis de générer le script d'automatisation avec une commande. Le changement signifie que tout le contenu répété qui doit être remplacé doit être modifié par lots à l'aide de scripts. Bien entendu, l'extraction de variables et les assertions nécessitent toujours des modifications manuelles pour chaque interface. Vérifier signifie exécuter le débogage pour rechercher les erreurs et les corriger. Comparé à certains outils ou plates-formes de test d'interface qui nécessitent la saisie manuelle d'une seule interface, Httprunner est si simple qu'aucun problème n'est requis ! Ce qui suit est un exemple détaillé de la façon de générer des scripts automatisés via Httprunner.

2. Déplacement 1 : Cliquez un peu

Je vais maintenant illustrer avec un scénario commercial simple, dans lequel je souhaite automatiser l'ensemble du processus de création d'un espace d'équipe, de création d'itérations et de création de cartes dans le module d'espace d'équipe. Tout d’abord, vous devez effectuer les opérations correspondantes côté Web.

Dans le même temps, vous pouvez également utiliser des outils de capture de paquets tels que Fiddler ou la fonction F12 du navigateur lui-même pour capturer l'interface des processus métier. Supprimez les interfaces principales réservées secondaires et exportez toutes les interfaces dans le fichier har createSpaceCardDemo.har. (Les outils de capture de paquets et les navigateurs peuvent exporter)

Ensuite, convertissez le fichier har en un script py via la ligne de commande de l'outil du framework Httprunner : h ar2case.exe createSpaceCardDemo.har . (Bien sûr, il peut aussi être au format yml. En comparaison, le format py est plus concis et plus facile à lire)



3. Déplacement 2 : changez-le

Le premier cycle d'exécution de la commande génère quelque chose comme ceci : grâce à l'observation, il s'avère que l'URL, les en-têtes, les cookies, le corps de la demande et d'autres informations dans le script changeront en fonction des différents utilisateurs dans différents environnements, un paramétrage est donc requis.

Après le deuxième tour de remplacement du script « secret », cela devient comme ceci : après avoir extrait l'url, les en-têtes et les cookies, le script est désormais très concis et clair.



Remplacement manuel du troisième tour : paramétrez les paramètres d'entrée pour vous assurer qu'il peut s'exécuter à chaque fois. Le champ de valeur de retour est extrait et restitué au résultat suivant ou à d'autres scripts dépendants. Les assertions portent des jugements ciblés basés sur les caractéristiques commerciales de chaque interface.



4. Déplacement 3 : Vérifiez-le

Une fois la modification terminée, exécutez la commande hrun .\testcases\space\space\createSpaceCardDemo_test.py --html=reports\index.html pour vérifier l'exactitude du script.

Cela ne semble-t-il pas très simple ? Plus facile que de mettre un éléphant au réfrigérateur.



Remarque : le framework initial doit être bien planifié et l'encapsulation de la fonction d'extraction de variables doit être bien réalisée. Il est également nécessaire de prendre en compte les caractéristiques métier telles que les différents environnements, les différentes méthodes de déploiement, les changements de préfixe d'interface, etc. Cela simplifiera les scripts d'automatisation ultérieurs.

5. ChatGPT génère des cas d'utilisation

Ce qui précède est le processus de base permettant à Httprunner d'implémenter l'automatisation de l'interface. Mais si vous souhaitez tester le scénario anormal de l'interface principale, vous ne pouvez pas cliquer sur le front-end et le script sera automatiquement généré après l'enregistrement. Si vous l'écrivez manuellement, cela augmentera considérablement la charge de travail du testeur. ChatGPT est désormais entré en scène. L'idée initiale est de saisir des paramètres et des contraintes pour l'interface chatGPT. Laissez ensuite chatGPT générer des cas de test pour les scénarios anormaux de l'interface. Laissez chatGPT convertir nos cas de test en scripts d'automatisation dont nous avons besoin. C'est si simple, si facile ! Si quelque chose ne va pas, demandez simplement à chatGPT de le corriger.

Après plusieurs séries de modifications, le cas d'utilisation final généré par chatGPT est le suivant :



6. ChatGPT génère un script Httprunner

Ensuite, transmettez les cas de test générés à chatGPT et laissez-le générer automatiquement des scripts d'automatisation d'interface. Entraînez-vous d’abord à générer un script d’automatisation d’interface qui répond aux attentes en fonction d’un cas d’utilisation.

Ensuite, « alimentez » tous les cas de test générés dans chatGPT et laissez-le générer tous les cas de test dans le script d'automatisation de l'interface Httprunner. Après avoir exécuté la commande hrun .\testcases\space\exceptions\createSpaceException_P01_test.py, elle a réussi directement. Bien entendu, les assertions actuelles ne sont que des assertions de code d’état, et des assertions doivent être faites pour les corps de message dans différents scénarios.



7. Résumé

Ce qui précède est l'étincelle lorsque chatGPT entre en collision avec Httprunner ( lien du site officiel ). Httprunner est déjà très simple pour écrire des cas d'utilisation d'interface, et ses fonctionnalités ont été considérablement améliorées après avoir rencontré chatGPT. Pour les interfaces pouvant être enregistrées, nous pouvons écrire un cas d'utilisation pour un scénario en seulement trois étapes, quelques clics, quelques modifications et quelques recherches. Pour les interfaces uniques qui ne peuvent pas être enregistrées, vous pouvez utiliser chatGPT pour générer des cas d'utilisation, puis laisser chatGPT générer automatiquement des scripts d'automatisation. Bien sûr, l'application actuelle est encore une interface relativement simple. Au début, cela peut être comme un enfant qui apprend à marcher, mais je crois qu'avec une exploration et un apprentissage continus, chatGPT deviendra de plus en plus compétent à mesure qu'il se développera. Parce qu’une seule étincelle peut déclencher un feu de prairie.

 

Auteur : Zhang Xinglei de JD Technology

Source : Communauté de développeurs JD Cloud Veuillez indiquer la source lors de la réimpression

L'auteur du framework open source NanUI s'est tourné vers la vente d'acier et le projet a été suspendu. La liste gratuite numéro un dans l'App Store d'Apple est le logiciel pornographique TypeScript. Il vient de devenir populaire, pourquoi les grands commencent-ils à l'abandonner ? Liste TIOBE d'octobre : Java connaît la plus forte baisse, C# se rapproche de Java Rust 1.73.0 publié Un homme a été encouragé par sa petite amie IA à assassiner la reine d'Angleterre et a été condamné à neuf ans de prison Qt 6.6 officiellement publié Reuters : RISC-V la technologie devient la clé de la guerre technologique sino-américaine Nouveau champ de bataille RISC-V : non contrôlé par une seule entreprise ou un seul pays, Lenovo prévoit de lancer un PC Android
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/4090830/blog/10117347
conseillé
Classement