Passer au contenu
  • YouTube
  • FaceBook
  • Twitter
  • Instagram

Data Analytics Irlande

Analyse des données et tutoriels vidéo

  • Accueil
  • Contactez
  • À propos de nous
    • Dernières nouvelles
    • Écrivez-nous
    • Pour en savoir plus sur notre site web
  • Liens utiles
  • Glossaire
  • Toutes les catégories
  • Faq
  • Livestream
  • Basculer le formulaire de recherche
  • sélectionner des lignes avec une certaine valeur en utilisant SQL SQL
  • Tutoriel Python : Ajouter une colonne à un cadre de données Cadre de données Python
  • Comment utiliser la fonction zip() en Python Python
  • créer lire mettre à jour supprimer en utilisant Tkinter classe
  • Qu'est-ce que l'optimisation des requêtes en SQL ? SQL
  • Comment regrouper vos données dans le tableau visualisation des données
  • IndexError : l'indexeur positionnel unique est hors limites Erreur d'indexation
  • Comment afficher les différences en pourcentage entre les fichiers en Python CSV

Comment automatiser les tests avec Python | unittest

Posté le 1er novembre 20213 novembre 2021 Par admin

Estimation du temps de lecture : 5 procès-verbal

Vous travaillez donc avec de grandes quantités de données, et ces données subissent des transformations ou, tout simplement, vous avez besoin de voir si les données ont changé d'une manière ou d'une autre lorsque vous les déplacez.

La question qui se pose est la suivante : si j'ai beaucoup de validations à effectuer, comment puis-je voir rapidement si elles réussissent ou échouent ?

Nous vous présentons ici unittest, un cadre de test Python qui vous permettra de valider rapidement les données avec lesquelles vous travaillez.

Étape 1 - Définissez vos scénarios de test

Comme dans tout test, la première étape consiste à définir ce que vous voulez tester et quel est votre résultat attendu. Ici, nous testons des données qui ont été transformées en une valeur différente.

Le test examine ensuite les nouvelles valeurs et les compare à une liste de valeurs attendues dans la sortie.

Comme on peut le voir, les deux lignes ci-dessus seront utilisées pour créer nos cas de test, qui seront décrits ci-dessous.

Bien que les critères ci-dessous puissent sembler très stricts, ils soulignent exactement ce que nous testons. Soit toutes les données passent le test, soit elles ne le passent pas.

En réalité, ces règles peuvent être modifiées/assouplies en fonction de ce que vous devez tester, ceci est purement illustratif :

Étape 2 - Créer notre fichier python qui transmettra les données transformées

C'est le premier fichier dont nous avons besoin, ce sera le fichier source qui sera utilisé pour transformer les données et qui sera ensuite transmis au module de test.

Dans ce cas, il s'appelle "automate_testing_python.py".

J'ai créé un dictionnaire ici, mais vous pouvez lire un fichier CSV ou tout autre fichier que vous souhaitez. Assurez-vous simplement qu'il est transmis au cadre de données.

import pandas as pd

data = {'Name_before':['Joe','Liz','Pat'],'Name_after':['Joseph','Elizabeth','Patrick']} #===> Creating a dictionary

df = pd.DataFrame(data) #===> Creating a dataframe


def main():

    transfromations_applied = data['Name_after'] #===> Defines the column you want to test against
    return transfromations_applied #===> Returns the values that will be used in the automation script

La fonction "main" ci-dessus définit clairement quelle colonne contient les données à transmettre au test automatisé, dans ce cas " transfromations_applied ".

Étape 3 - Créer un fichier de script de test

Il y a un certain nombre d'étapes à suivre :

  1. Installez le paquet HTMLTestrunner dans la solution que vous utilisez.
  2. Installez la bibliothèque Unittest dans le même programme. Cela permettra d'effectuer les tests demandés et de fournir les sorties de résultats.
  3. Ensuite, nous importons ce qui a été retourné par la fonction "main" dans le fichier "automate_testing_python.py".
  4. L'étape suivante est la création de la classe, qui sert les objectifs suivants :
    1. Définit les tests exacts que nous voulons effectuer.
    2. Dans la première méthode, elle définit clairement les valeurs attendues et ce qui doit être testé.
    3. La deuxième méthode consiste à vérifier purement et simplement que toutes les valeurs sont alphabétiques.
  5. La dernière ligne est un fichier qui exécutera les tests et renverra ensuite les valeurs dans le fichier html de sortie.
from HTMLTestRunner import HTMLTestRunner
import unittest

from automate_testing_python import main #===> Importe les données retournées


#C'est le code qui effectue les tests
#Chaque méthode est un test spécifique
class test_values(unittest.TestCase) :


def test_ValueEquals(self) :

ExpectedValues = ['Joseph','Elizabeth','Patrick']
values_received = main()
self.assertListEqual(ExpectedValues,values_received)

def test_Valueisalphabetic(self) :

values_received = main()
for c in values_received :
self.assertTrue(c.isalpha())



if __name__ == "__main__":
HTMLTestRunner.main()

Étape 4 - Créer le fichier qui générera le fichier HTML de sortie avec les résultats.

À la suite des étapes ci-dessus, nous avons créé les données, les avons apportées pour les tester par rapport à des scénarios de test prédéfinis.

Maintenant, il ne nous reste plus qu'à présenter les résultats dans un fichier HTML.

Dans ce cas, le résultat sera plus facile à comprendre et plus rapide à digérer.

Dans le code ci-dessous, il suit les étapes suivantes :

(A) La première et la deuxième ligne importent les bibliothèques dont nous aurons besoin pour exécuter ce bout de code.

(B) La troisième ligne reçoit les valeurs qui ont été générées à partir de la classe à l'étape 3.

(C) Les quatre lignes suivantes permettent de récupérer les données et de les joindre au fichier myreport.html.

(D) Les deux dernières lignes font ce qui suit :

  1. Dites au programme de prendre les données reçues, puis d'utiliser le paquet HTMLTestRunner pour les traiter et créer le modèle de sortie.
from HTMLTestRunner import HTMLTestRunner
import unittest
from test_automate_testing_python import test_values

if __name__=='__main__':
    suite=unittest.makeSuite(test_values)
    filename='C:\\Users\haugh\OneDrive\dataanalyticsireland\YOUTUBE\how_to_automate_testing_with_python\myreport.html'
    fp=open(filename,'w')
    runner=HTMLTestRunner.HTMLTestRunner(fp,title=u'Data Analytics Ireland Test Output',description=u'This shows the testing output result')
    runner.run(suite)

Étape 5 - Exécutez le fichier html_report.py

L'exécution de ce fichier ouvrira et exécutera également le code dans les autres fichiers référencés dans ce post.

En conséquence, lorsque le programme est terminé, la sortie ressemblera à ceci :

Plus tôt dans le programme, nous avons créé un dictionnaire (STEP 1) comme ceci :

data = {‘Name_before’:[‘Joe’,’Liz’,’Pat’],’Name_after’:[‘Joseph’,’Elizabeth’,’Patrick’]} #===> Creating a dictionary

et ensuite, à l'étape 2, dans notre classe "test_values", nous avons défini les résultats attendus.

def test_ValueEquals(self) : ExpectedValues = ['Joseph','Elizabeth','Patrick']

Dans ce cas, les valeurs sont les mêmes, la sortie ci-dessus indiquera que les deux tests sont réussis.

Mais si les valeurs transmises sont :

data = {‘Name_before’:[‘Joe’,’Liz’,’Pat’],’Name_after’:[‘Joseph’,’Elizabeth’,‘Patrick1’]} #===> Creating a dictionary

et sont comparés à

def test_ValueEquals(self) : ExpectedValues = ['Joseph','Elizabeth','Patrick']

La sortie suivante apparaîtra, car les deux tests échoueront :

Nous avons donc créé deux cas de test ici, mais nous pourrions en ajouter beaucoup d'autres et faire en sorte que l'automatisation nous renvoie rapidement les résultats du test.

automatisation, classe, Python, Fonctions du python Tags :Analyse des données, HTMLTestRunner, Python, automatisation python, unittest

Post navigation

Previous Post : ValueError : impossible de convertir le float NaN en integer
Next Post : Comment générer des nombres entiers aléatoires entre 0 et 9

Postes connexes

  • TypeError : tous les arguments n'ont pas été convertis lors du formatage des chaînes de caractères Python
  • Comment modifier les en-têtes d'un fichier CSV CSV
  • TypeError : l'objet 'str' n'est pas appelable Fonctions Python
  • Comment créer une classe en Python classe
  • Qu'est-ce qu'un tableau en Python ? tableau
  • Comment passer plusieurs listes à une fonction et les comparer ? Fonctions Python

Choisissez votre langue !

  • English
  • हिंदी
  • Español
  • Português
  • Italiano
  • Deutsch
  • lever une exception en python classe
  • Comment passer des variables Python à Javascript Javascript
  • Comment utiliser les jokers en SQL SQL
  • Tutoriel Python : Créer une boîte de saisie dans Tkinter Python
  • Tutoriel Python : Pandas groupby columns ( vidéo 2 ) Python
  • Qu'est-ce que l'intégrité des données ? SQL
  • TypeError : Array() Argument 1 doit être un caractère Unicode, pas une liste. tableau
  • Comment créer une combobox dans tkinter Python

Copyright © 2023 Data Analytics Ireland.

Propulsé par le thème PressBook Premium

Ce site Web utilise des cookies pour améliorer votre expérience. Nous supposons que vous êtes d'accord avec cela, mais vous pouvez refuser si vous le souhaitez. Paramètres des cookiesACCEPTER
Politique en matière de confidentialité et de cookies

Aperçu de la protection de la vie privée

Ce site web utilise des cookies pour améliorer votre expérience lorsque vous naviguez sur le site. Parmi ces cookies, les cookies classés comme nécessaires sont stockés sur votre navigateur car ils sont essentiels pour le fonctionnement des fonctionnalités de base du site web. Nous utilisons également des cookies de tiers qui nous aident à analyser et à comprendre comment vous utilisez ce site web. Ces cookies ne seront stockés dans votre navigateur qu'avec votre consentement. Vous avez également la possibilité de refuser ces cookies. Toutefois, la désactivation de certains de ces cookies peut avoir un effet sur votre expérience de navigation.
Nécessaire
Toujours activé
Les cookies sont absolument nécessaires pour le bon fonctionnement du site web. Cette catégorie ne comprend que les cookies qui assurent les fonctionnalités de base et les fonctions de sécurité du site web. Ces cookies ne stockent aucune information personnelle.
Non nécessaire
Les cookies qui ne sont pas particulièrement nécessaires au fonctionnement du site web et qui sont utilisés spécifiquement pour collecter des données personnelles de l'utilisateur par le biais d'analyses, de publicités ou d'autres contenus intégrés sont appelés cookies non nécessaires. Il est obligatoire d'obtenir le consentement de l'utilisateur avant de placer ces cookies sur votre site web.
ÉCONOMISER & ACCEPTER