Rapports et tests d'automatisation de l'interface utilisateur

Dans le développement de script de test orienté fonctionnalités, la solution Test Reporting est réalisable pour le framework Protractor avec l'intégration de cucumber. Commençons le test d'automatisation avec la structure du framework.

Le script de test est conçu sur la base de l'ordre des cas de test par scénario de test fourni pour le rapport de test d'automatisation de l'interface utilisateur. Sur ce cadre, le fichier de fonctionnalités Cucumber fait le contrôle de l'ordre d'exécution. Tout comme TestNG ou JUnit. Mais à la différence de ces frameworks dans cette solution.=

Le composant que nous utilisons ici est un outil Open source de npm. Inc Ces gars fournissent des outils openSource étonnants. Ils vous seront utiles à l'avenir.

Des outils de développement JavaScript essentiels qui vous aident à aller plus vite sur le marché et à construire des applications puissantes en utilisant du code open-source moderne. Dans cet article, nous ne considérons cet outil que pour les tests d'automatisation.

cucumber-html-reporter

5.0.0 - Public La fonction de ce composant est de créer un fichier JSON avec l'APIs de résultats de cucumber. Pour l'activer, vous devez installer

npm install cucumber-html-reporter --save-dev

La dernière version de cette installation prend en charge cucumber 3 🙂La dernière version de cette installation prend en charge cucumber 3

Installercucumber-html-reporter@2.0.3 pour cucumber version < Cucumber@3Installer cucumber-html-reporter@0.5.0 pour cucumber version < Cucumber@2Installer cucumber-html-reporter@0.4.0 pour node version <0.12

Commençons par le début. Si vous avez déjà installé ce composant (Restez concentré sur la version de Cucumber).

Etapes de la solution

1. installer le paquet

2. ajouter du code à la classe Runner (cela créera un fichier json pour vous)

3.créer le fichier index.js (pour convertir votre json en HTML)

4.exécuter index.js (cela créera un rapport HTML à l'emplacement mentionné).

Pour CucumberJS

Ce module convertit le format JSON de Cucumber en rapports HTML.

Pour générer des formats JSON, lancez Cucumber pour créer le format JSON et passez le nom du fichier au formateur comme indiqué ci-dessous,

$ cucumberjs test/features/ -f json:test/report/cucumber_report.json Plusieurs formateurs sont également supportés,-----> $ cucumberjs test/features/ -f summary -f json:test/report/cucumber_report.json

Utilisez-vous cucumber avec d'autres frameworks ou exécutez-vous cucumber-parallel? Passez le chemin relatif du fichier JSON dans les options comme indiqué ici

Modifiez maintenant votre classe d'exécution

cucumberOpts : { require: ['src/spec/*.spec.ts'], format : 'json:src/report/cucumber_report.json'},

Note :Applicable si storeScreenshots=true. Chemin relatif du répertoire dans lequel les captures d'écran doivent être enregistrées. Par exemple, les options ci-dessous devraient stocker les captures d'écran dans le répertoire <parentDirectory>/screenshots/ alors que le rapport se trouverait dans le répertoire <parentDirectory>/report/cucumber_report.html.

Exécutez votre script, vous obtiendrez le fichier JSON à l'emplacement indiqué.

   'keyword': 'Feature', 'name': 'Test Login in the System', 'line': 1, 'id': 'test-login-in-the System', 'tags': [], 'uri': 'features/login.feature', 'elements': [ { 'id': 'test-login-in-the;admin-login-function-positive', 'keyword': 'Scenario', 'line': 2, 'name': 'Admin Login function Positive', 'tags': [], 'type': 'scenario', 'steps': [ { 'arguments': [], 'keyword': 'Given', 'line': 3, 'name': 'Navigate to home', 'match': { 'location': 'src/spec/login.spec.ts:13'}, 'result': { 'status': 'passed', 'duration': 2000000 } }, { 'arguments': [], 'keyword': 'Then', 'line': 4, 'name': 'Admin positive Login', 'match': { 'location': 'src/spec/login.spec.ts:19'}, 'result': { 'status': 'passed', 'duration': 15156000000 } }, { 'arguments': [], 'keyword': 'Then', 'line': 5, 'name': 'Admin Logout', 'match': { 'location': 'src/spec/login.spec.ts:24'}, 'result': { 'status': 'passed', 'duration': 8876000000 } }, { 'arguments': [], 'keyword': 'Then', 'line': 6, 'name': 'Admin Negative Login', 'match': { 'location': 'src/spec/login.spec.ts:30'}, 'result': { 'status': 'passed', 'duration': 13136000000 } }, { 'arguments': [], 'keyword': 'Then', 'line': 7, 'name': 'Validate Error Message', 'match': { 'location': 'src/spec/login.spec.ts:35'}, 'result': { 'status': 'failed', 'duration': 1704000000, 'error_message': 'AssertionError : Message d'erreur non validé !!\N- at Login.<anonymous> (/home/aux-120/Desktop/Automation/dev2/UIAutmoation/src/pages/LoginPage.ts:53:9)\N- at step (/home/aux-120/Desktop/Automation/dev2/UIAutmoation/src/pages/LoginPage.ts:32:23)\N- at Object.next (/home/aux-120/Desktop/Automation/dev2/UIAutmoation/src/pages/LoginPage.ts:13:53)\n at fulfilled (/home/aux-120/Desktop/Automation/dev2/UIAutmoation/src/pages/LoginPage.ts:4:58)\n at <anonymous>\n at process._tickCallback (internal/process/next_tick.js:188:7)'} { 'keyword': 'After', 'hidden': true, 'match': { 'location': 'node_modules/protractor-cucumber-framework/lib/resultsCapturer.js:25'}, 'result': { 'status': 'passed', 'duration': 1000000 } } ] } ] } ]

Ensuite, vous pouvez créer un fichier index.js pour convertir ce résultat en un rapport HTML agréable.

var reporter = require('cucumber-html-reporter') ;var options = { theme : 'bootstrap', jsonFile : 'src/report/cucumber_report.json', output : 'src/report/cucumber_report.html', screenshotsDirectory : 'src/screenshots/', storeScreenshots : false, reportSuiteAsScenarios : true, launchReport : true, metadata : { 'App Version':'0.0.0', 'Test Environment': '[server]', 'Browser': 'Version 74.0.3729.169 (Official Build) (64-bit)', 'Platform': 'Ubuntu 18.04', 'Parallel': 'Scenarios', 'Executed': 'Remote'} ; reporter.generate(options) ;

Vous pouvez maintenant l'exécuter via node

$ node index.js

Il générera du HTML dans

output : 'src/report/cucumber_report.html',

Il ressemblera à ceci :

Référence : https://www.npmjs.com/package/cucumber-html-reporter#storescreenshots

Pour d'autres sujets connexes : APIS ZIWO

UI Automation Test