Heim Web-Frontend js-Tutorial So integrieren Sie Kith Xray/Jira

So integrieren Sie Kith Xray/Jira

Sep 10, 2024 am 11:30 AM

In diesem Artikel werde ich eine einfache Möglichkeit demonstrieren, wie wir k6 mit XRAY/Jira integrieren können.

Vor einiger Zeit wurde mir die Aufgabe übertragen, einen Leistungstest für eine API zu schreiben, die eine ganze Reihe von Anfragen verarbeiten sollte. Aus diesem Grund brauchten wir ein gutes Tool, das schneller zu erlernen ist und für jeden QS-Ingenieur einfacher beizutragen ist.
Da ich in der Vergangenheit Laststöße verwendet hatte, war ich mit K6 recht vertraut. Dies sind die Hauptgründe, warum wir uns für k6 gegenüber den anderen Leistungstesttools entschieden haben:

  • Verwendet Javascript: Die meisten QA/Entwickler in meinem Team waren mit Javascript vertraut, sodass keine Notwendigkeit bestand, eine neue Sprache zu lernen

  • Open-Source: Das bedeutet, dass für die Nutzung des Tools keine Zahlungen erforderlich sind und die Community aktiv ist

  • CI/CD: Die Integration von k6 in unsere CI/CD-Pipelines war unkompliziert

Ich kann mit den Vorteilen der Wahl von k6 fortfahren, aber ich werde einen neuen Beitrag schreiben, um speziell darüber zu sprechen.

Nachdem wir unser Test-Framework fertiggestellt hatten, wollten wir unsere Testergebnisse auf Jira haben. Da wir XRAY bereits verwendeten, brauchten wir eine Lösung, um den k6-JSON-Bericht in das Röntgenformat zu konvertieren. Ich konnte keine Lösung finden, die in unserem Fall funktionierte.

K6 handleSummary()

K6 verfügt über eine wesentliche Funktion, mit der alle Metriken abgerufen werden können. Diese Optionen sind stdout, XML und JSON.

Dazu mussten wir lediglich ein Skript erstellen, um das Datenobjekt aus der handleSummary-Funktion aufzunehmen.

Unten finden Sie das Skript zum Konvertieren des Datenobjekts von k6 in einen einfachen Bericht im XRAY-Format:

k6-XRAY-Skript

So richten Sie das Generator-Hilfsskript für die k6- und Xray-Integration ein

Klonen Sie das Repo an den gewünschten Ort:
Erstellen Sie vorzugsweise einen Ordner innerhalb des Hauptprojekts.

Beispiel:
Helfer, src, melden

Dies wird Ihnen helfen, die Importe ohne Probleme zu verwalten:

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Folgendes auf Ihrem Computer installiert ist:

  • Node.js
  • npm
  • k6

Verwendung

Wenn Ihre k6-Tests in Gruppen organisiert sind und jeder Gruppentitel einem Testfall auf Xray entspricht, können Sie das Generatorskript verwenden, um eine mit Xray kompatible JSON-Datei zu erstellen.

Beispiel

Das Bild unten aus Xray-Dokumenten zeigt Testfälle mit den Schlüsseln CALC-01 und CALC-02.

How to integrate kith Xray/Jira

In Ihrem k6-Testskript können Sie die Gruppentitel als CALC-01 und CALC-02 benennen. Das Skript sucht nach diesen Gruppennamen und ordnet die Testergebnisse den jeweiligen Testfällen auf Xray zu.

group('CALC-01', function() {
  // test code
});
group('CALC-02', function() {
  // test code
});
Nach dem Login kopieren

Ausgabe

Das Skript generiert eine mit Xray kompatible JSON-Datei, die im selben Verzeichnis wie das Skript gespeichert wird.

Klonen Sie das Repo

git clone https://github.com/skingori/k6-json-xray.git
Nach dem Login kopieren

So richten Sie das Skript ein

Wir verwenden die von k6 bereitgestellte Funktion handleSummary und textSummary aus unserem Generator.js-Skript, um die JSON-Datei zu generieren. Die Funktion handleSummary nimmt ein Datenobjekt auf, das wir an getSummary übergeben, um es in ein Xray-kompatibles Format zu ändern.

Lesen Sie hier mehr über k6 HandleSummary

Ändern Sie Ihr Ausführungsskript und fügen Sie die folgenden Zeilen hinzu:

import { getSummary } from "./generator.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
Nach dem Login kopieren

Ich verwende ./generator.js direkt, da es sich im selben Ordner wie mein Skript befand. Nehmen wir an, Sie haben ein Hilfsprogramm verwendet. Das sollte lauten:

import { getSummary } from "./helper/generator.js";
Nach dem Login kopieren

Fügen Sie am Ende Ihres Codes die handleSummary-Funktion hinzu:

export function handleSummary(data) {
    return {
        stdout: textSummary(data, { indent: " ", enableColors: true }),
        "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2)
    };
}
Nach dem Login kopieren

Unsere Funktion getSummary konvertiert das Datenobjekt in das für Röntgenaufnahmen erwartete Format und speichert die Ausgabe in der Datei summary.json

Warum verwenden wir textSummary?

Um eine gedruckte Ausgabe auf der Konsole zu erhalten, müssen wir textSummary aus der k6 JS-Dienstprogrammbibliothek importieren

Dies gilt jedoch möglicherweise nicht für alle, wenn Sie keinen Standardbericht benötigen und die Textzusammenfassung nicht importieren müssen

Beispiel
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)
    };
}
Nach dem Login kopieren

Hinweis: Sie können stdout: textSummary(data, { indent: " ", enableColors: true }), line entfernen, wenn Sie textSummary nicht importieren möchten

handleSummary funktioniert standardmäßig und wird normalerweise am Ende des Testlebenszyklus aufgerufen.

Ausführen des Skripts

Um das Skript auszuführen, verwenden Sie den folgenden Befehl:

k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
Nach dem Login kopieren

TEST_PLAN_KEY und TEST_EXEC_KEY werden verwendet, um den Testplan und die Testausführung auf Xray zu identifizieren.

Lesen Sie hier mehr über Testplan und Testausführungsschlüssel

Ausgabe

Das obige Skript erstellt den folgenden Bericht unter 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"
    }
  ]
}
Nach dem Login kopieren

Um weitere Informationen zu k6 und Röntgen zu erhalten, wenden Sie sich bitte an die Dokumentation:
K6-Dokument
XRAY-Dokument

Découvrez également ceci - Comment créer et gérer des cas de test avec Xray et Jira, un article sympa écrit par Sérgio Freire

Et comme toujours, n'hésitez pas à me contacter !

LinkedIn
Courriel
Github

Das obige ist der detaillierte Inhalt vonSo integrieren Sie Kith Xray/Jira. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist JQuery überprüfen, ob das Datum gültig ist Mar 01, 2025 am 08:51 AM

JQuery überprüfen, ob das Datum gültig ist

JQuery Get Element Polsterung/Rand JQuery Get Element Polsterung/Rand Mar 01, 2025 am 08:53 AM

JQuery Get Element Polsterung/Rand

10 JQuery Accords Registerkarten 10 JQuery Accords Registerkarten Mar 01, 2025 am 01:34 AM

10 JQuery Accords Registerkarten

10 lohnt 10 lohnt Mar 01, 2025 am 01:29 AM

10 lohnt

HTTP-Debugging mit Knoten und HTTP-Konsole HTTP-Debugging mit Knoten und HTTP-Konsole Mar 01, 2025 am 01:37 AM

HTTP-Debugging mit Knoten und HTTP-Konsole

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

JQuery fügen Sie Scrollbar zu Div hinzu JQuery fügen Sie Scrollbar zu Div hinzu Mar 01, 2025 am 01:30 AM

JQuery fügen Sie Scrollbar zu Div hinzu

See all articles