Maison > interface Web > js tutoriel > Comment intégrer kith Xray/Jira

Comment intégrer kith Xray/Jira

WBOY
Libérer: 2024-09-10 11:30:51
original
499 Les gens l'ont consulté

Dans cet article, je vais démontrer une manière simple d'intégrer k6 à XRAY/Jira.

Il y a quelque temps, on m'a confié la tâche d'écrire un test de performances pour une API censée gérer un certain nombre de requêtes. Pour cette raison, nous avions besoin d'un bon outil qui sera plus rapide à utiliser et plus facile à contribuer pour tout ingénieur QA.
Ayant utilisé l'impact de charge dans le passé, je connaissais bien le K6. Voici les principales raisons pour lesquelles nous avons choisi k6 plutôt que les autres outils de test de performances :

  • Utilise Javascript : La plupart des QA/Développeurs de mon équipe étaient familiers avec Javascript, c'est pourquoi il n'y avait pas besoin d'apprendre un nouveau langage

  • Open-source : Cela signifie qu'aucun paiement n'est requis pour utiliser l'outil et que la communauté est active

  • CI/CD : L'intégration de k6 à nos pipelines CI/CD a été simple

Je peux continuer sur les avantages de choisir k6, mais j'écrirai un nouvel article pour en parler spécifiquement.

Après avoir terminé notre framework de test, nous souhaitions avoir nos résultats de tests sur Jira. Comme nous utilisions déjà XRAY, nous avions besoin d'une solution pour convertir le rapport k6 JSON au format X-ray. Je n'ai trouvé aucune solution qui fonctionne avec notre cas.

Poignée K6Résumé()

K6 possède une fonctionnalité essentielle qui peut être utilisée pour obtenir toutes les métriques. Ces options sont stdout, XML et JSON.

Pour cela, il nous suffisait de créer un script pour récupérer l'objet de données de la fonction handleSummary.

Vous trouverez ci-dessous le script pour convertir l'objet de données de k6 en un simple rapport au format XRAY :

k6-XRAY-script

Comment configurer le script d'aide du générateur pour l'intégration de k6 et Xray

Clonez le dépôt à l'emplacement souhaité :
De préférence, créez un dossier dans le projet principal.

Exemple :
assistant, src, rapport

Cela vous aidera à bien gérer les importations sans problèmes :

Conditions préalables

Avant de commencer, assurez-vous que les éléments suivants sont installés sur votre ordinateur :

  • Node.js
  • npm
  • k6

Usage

Si vos tests k6 sont organisés en groupes, et que chaque titre de groupe correspond à un cas de test sur Xray, vous pouvez utiliser le script générateur pour créer un fichier JSON compatible avec Xray.

Exemple

L'image ci-dessous tirée de Xray Docs montre des cas de test avec les clés CALC-01 et CALC-02.

How to integrate kith Xray/Jira

Dans votre script de test k6, vous pouvez nommer les titres de groupe CALC-01 et CALC-02. Le script recherchera ces noms de groupe et attribuera les résultats des tests aux cas de test respectifs sur Xray.

group('CALC-01', function() {
  // test code
});
group('CALC-02', function() {
  // test code
});
Copier après la connexion

Sortir

Le script génère un fichier JSON compatible avec Xray, enregistré dans le même répertoire que le script.

Cloner le dépôt

git clone https://github.com/skingori/k6-json-xray.git
Copier après la connexion

Comment configurer le script

Nous utiliserons la fonction handleSummary fournie par k6 et textSummary de notre script generator.js pour générer le fichier JSON. La fonction handleSummary récupère un objet de données, que nous transmettons à getSummary pour le modifier dans un format compatible Xray.

En savoir plus sur k6 HandleSummary ici

Modifiez, ouvrez votre script d'exécution et ajoutez les lignes suivantes :

import { getSummary } from "./generator.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
Copier après la connexion

J'utilise directement le ./generator.js tel qu'il se trouvait dans le même dossier que mon script. Supposons que vous utilisiez helper, cela devrait être :

import { getSummary } from "./helper/generator.js";
Copier après la connexion

Ajoutez la fin de votre code ajoutez la fonction handleSummary :

export function handleSummary(data) {
    return {
        stdout: textSummary(data, { indent: " ", enableColors: true }),
        "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2)
    };
}
Copier après la connexion

Notre fonction getSummary convertira l'objet de données au format attendu par les rayons X et enregistrera la sortie dans le fichier summary.json

Pourquoi utilisons-nous textSummary ?

Pour avoir une sortie imprimée sur la console, nous devons importer textSummary depuis la bibliothèque d'utilitaires k6 JS

Mais cela peut ne pas s'appliquer à tout le monde si vous n'avez pas besoin d'un rapport standard, vous n'avez pas besoin d'importer le texteRésumé

Exemple
import http from 'k6/http';
import { sleep, group, check } from 'k6';
import { getSummary } from "./generator.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";

export const options = {
    vus: 10,
    duration: '30s',
};

export default function() {
    group('CALC-01', function() {
        const resp = http.get('http://test.k6.io');
        check(resp, {
            'status is 200': (r) => r.status === 200,
        });
        sleep(1);
    });

    group('CALC-02', function() {
        const resp = http.get('http://test.k6.io');
        check(resp, {
            'status is 200': (r) => r.status === 200,
        });
        sleep(1);
    });
};

export function handleSummary(data) {
    return {
        stdout: textSummary(data, { indent: " ", enableColors: true }),
        "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2)
    };
}
Copier après la connexion

Remarque : vous pouvez éliminer stdout: textSummary(data, { indent: " ", activateColors: true }), line si vous ne souhaitez pas importer textSummary

handleSummary fonctionne par défaut et est généralement appelé à la fin du cycle de vie du test.

Exécuter le script

Pour exécuter le script, utilisez la commande suivante :

k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
Copier après la connexion

Les TEST_PLAN_KEY et TEST_EXEC_KEY sont utilisés pour identifier le plan de test et l'exécution des tests sur Xray.

En savoir plus sur le plan de test et les clés d'exécution des tests ici

Sortir

Le script ci-dessus produira le rapport suivant sous summary.json

{
  "info": {
    "summary": "K6 Test execution - Mon Sep 09 2024 21:20:16 GMT+0300 (EAT)",
    "description": "This is k6 test with maximum iteration duration of 4.95s, 198 passed requests and 0 failures on checks",
    "user": "k6-user",
    "startDate": "2024-09-09T18:20:16.000Z",
    "finishDate": "2024-09-09T18:20:16.000Z",
    "testPlanKey": "CALC-2345"
  },
  "testExecutionKey": "CALC-0009",
  "tests": [
    {
      "testKey": "CALC-01",
      "start": "2024-09-09T18:20:16.000Z",
      "finish": "2024-09-09T18:20:16.000Z",
      "comment": "Test execution passed",
      "status": "PASSED"
    },
    {
      "testKey": "CALC-02",
      "start": "2024-09-09T18:20:16.000Z",
      "finish": "2024-09-09T18:20:16.000Z",
      "comment": "Test execution passed",
      "status": "PASSED"
    }
  ]
}
Copier après la connexion

Pour obtenir plus de détails sur k6 et X-ray, veuillez consulter leur documentation :
Document K6
Document RAYON X

こちらもチェックしてください - Xray と Jira でテスト ケースを作成および管理する方法、Sérgio Freire が書いた素晴らしい記事

そしていつものように、お気軽にご連絡ください!

リンクトイン
メール
ギットハブ

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal