Développer un module de reporting dans un framework d'automatisation de test

Il est important que notre framework d'automatisation des tests dispose d'un module de reporting pour plusieurs raisons:

  1. Nous donne une indication sur l'emplacement de l'échec.
  2. Une capacité à comparer différentes exécutions, en supposant que quelque chose a échoué lors de l'exécution précédente.
  3. Les développeurs d'automatisation peuvent envoyer un résumé du rapport d'exécution à l'équipe R&D concernée pour une indication sur la progression des tests.

La structure du rapport sera un document CSV contenant les champs suivants:

  • Étape Description
  • Réussite / échec
  • Exception

Commençons par créer une nouvelle classe appelée 'Reports', puis nous collerons le code suivant:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
    public class Reports
    {
        private string BrowserType;
        private string url;
        private DateTime date;
        private FileStream fs;
        private StringBuilder reportcsv;
        private string filePath;
        private string fileName;
        public Reports(string BrowserType, string url)
        {
            this.BrowserType = BrowserType;
            this.url = url;
            date = DateTime.Now;
            fileName = date.Date.Date.ToShortDateString() + date.TimeOfDay.Hours.ToString() + date.TimeOfDay.Minutes.ToString();
            reportcsv = new StringBuilder();
            filePath = @"C:\Users\TestProject\Desktop\Automation\" + fileName + ".csv";
            createCsvFile();
        }
        private void createCsvFile()
        {
            reportcsv.Append("StepDescription,");
            reportcsv.Append("Pass/Fail,");
            reportcsv.Append("Exception");
            File.AppendAllText(filePath, reportcsv.ToString());
        }
        public void addLine(string description, string result, string exception)
        {
            reportcsv.Append(Environment.NewLine);
            reportcsv.Append(description + ",");
            reportcsv.Append(result + ",");
            reportcsv.Append(exception + ",");
            reportcsv.Append(Environment.NewLine);
            File.WriteAllText(filePath, reportcsv.ToString());
        }
    }
}

Il existe un certain nombre de variables et de fonctions: Les noms des variables «date» et «url» feront partie des données du rapport. Le but du générateur de classe est d'initialiser les détails du rapport en tant que type de navigateur testé, URL du site Web, date de test, passant éventuellement à la fonction suivante:

createCsvFile -  Cette fonction crée le document de notre rapport et l'initialise avec les en-têtes suivants:

  • StepDescription - Description de l'étape du test
  • Réussite / Échec - Résultat du test.
  • Exception - Si une exception a été levée.

addLine -  Une fonction qui ajoute une ligne à notre rapport. La fonction reçoit la description de l'étape, le résultat et le résultat attendu.

 

N'hésitez pas à partager vos pensées et vos histoires de test.


Rejoindre la conversation