Rumah > hujung hadapan web > tutorial js > Bagaimana untuk mengintegrasikan kith Xray/Jira

Bagaimana untuk mengintegrasikan kith Xray/Jira

WBOY
Lepaskan: 2024-09-10 11:30:51
asal
502 orang telah melayarinya

Dalam artikel ini, saya akan menunjukkan cara mudah kita boleh mengintegrasikan k6 dengan XRAY/Jira.

Suatu ketika dahulu, saya telah diberikan tugas untuk menulis ujian prestasi untuk API yang dijangka mengendalikan sejumlah permintaan. Atas sebab ini kami memerlukan alat yang baik yang akan lebih cepat diambil dan lebih mudah bagi mana-mana jurutera QA untuk menyumbang.
Setelah menggunakan impak beban pada masa lalu, saya agak biasa dengan K6. Ini ialah sebab utama kami memilih k6 berbanding alat ujian prestasi yang lain:

  • Menggunakan Javascript: Kebanyakan QA/Pembangun dalam pasukan saya biasa dengan javascript, oleh itu menjadikannya kerana tidak perlu mempelajari bahasa baharu

  • Sumber terbuka: Ini bermakna, tiada bayaran diperlukan untuk menggunakan alat tersebut dan komuniti aktif

  • CI/CD: Mengintegrasikan k6 dengan saluran paip CI/CD kami adalah mudah

Saya boleh meneruskan kelebihan memilih k6, tetapi saya akan menulis siaran baharu untuk membincangkannya secara khusus.

Selepas melengkapkan rangka kerja ujian kami, kami ingin mendapatkan keputusan ujian kami pada Jira. Memandangkan kami telah pun menggunakan XRAY, kami memerlukan penyelesaian untuk menukar laporan JSON k6 kepada format x-ray. Saya tidak dapat sebarang penyelesaian yang berkesan dengan kes kami.

pemegang K6Summary()

K6 mempunyai ciri penting yang boleh digunakan untuk mendapatkan semua metrik. Pilihan ini ialah stdout, XML dan JSON.

Untuk ini, kami hanya perlu mencipta skrip untuk mengambil objek data daripada fungsi handleSummary.

Di bawah ialah skrip untuk menukar objek data daripada k6 kepada laporan format XRAY yang mudah:

skrip k6-XRAY

Cara Menyediakan Skrip Pembantu penjana untuk Penyepaduan k6 dan Xray

Klon repo ke lokasi yang anda inginkan:
Sebaik-baiknya, buat folder di dalam projek utama.

Contoh:
pembantu, src, lapor

Ini akan membantu anda mengurus import dengan baik tanpa masalah:

Prasyarat

Sebelum anda bermula, pastikan anda telah memasang yang berikut pada mesin anda:

  • Node.js
  • npm
  • k6

Penggunaan

Jika ujian k6 anda disusun dalam kumpulan, dan setiap tajuk kumpulan sepadan dengan kes ujian pada Xray, anda boleh menggunakan skrip penjana untuk mencipta fail JSON yang serasi dengan Xray.

Contoh

Imej di bawah daripada dokumen Xray menunjukkan kes ujian dengan kunci CALC-01 dan CALC-02.

How to integrate kith Xray/Jira

Dalam skrip ujian k6 anda, anda boleh menamakan tajuk kumpulan sebagai CALC-01 dan CALC-02. Skrip akan mencari nama kumpulan ini dan memberikan keputusan ujian kepada kes ujian masing-masing pada Xray.

group('CALC-01', function() {
  // test code
});
group('CALC-02', function() {
  // test code
});
Salin selepas log masuk

Keluaran

Skrip menjana fail JSON yang serasi dengan Xray, disimpan dalam direktori yang sama dengan skrip.

Klon repo

git clone https://github.com/skingori/k6-json-xray.git
Salin selepas log masuk

Cara Menyediakan Skrip

Kami akan menggunakan fungsi handleSummary yang disediakan oleh k6 dan textSummary daripada skrip generator.js kami untuk menjana fail JSON. Fungsi handleSummary mengambil objek data, yang kami hantar ke getSummary untuk mengubah suainya menjadi format serasi Xray.

Baca lebih lanjut mengenai k6 HandleSummary di sini

Tukar buka skrip pelaksanaan anda dan tambah baris berikut:

import { getSummary } from "./generator.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
Salin selepas log masuk

Saya menggunakan ./generator.js secara langsung kerana ia berada dalam folder yang sama dengan skrip saya. Katakan anda menggunakan pembantu, ini sepatutnya:

import { getSummary } from "./helper/generator.js";
Salin selepas log masuk

Tambah hujung kod anda tambahkan handleSummary fungsi:

export function handleSummary(data) {
    return {
        stdout: textSummary(data, { indent: " ", enableColors: true }),
        "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2)
    };
}
Salin selepas log masuk

Fungsi getSummary kami akan menukar objek data kepada format yang dijangkakan sinar-x dan menyimpan output ke fail summary.json

Mengapa kami menggunakan textSummary?

Untuk mempunyai output bercetak pada konsol, kita perlu mengimport textSummary daripada perpustakaan utiliti k6 JS

Tetapi ini mungkin tidak terpakai kepada semua orang jika anda tidak memerlukan sebarang laporan stdout, anda tidak perlu mengimport textSummary

Contoh
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)
    };
}
Salin selepas log masuk

Nota: Anda boleh menghapuskan stdout: textSummary(data, { indent: " ", enableColors: true }), baris jika anda tidak mahu mengimport textSummary

Ringkasan pemegang berfungsi secara lalai dan ia biasanya dipanggil pada penghujung kitaran hayat ujian.

Menjalankan Skrip

Untuk menjalankan skrip, gunakan arahan berikut:

k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
Salin selepas log masuk

TEST_PLAN_KEY dan TEST_EXEC_KEY digunakan untuk mengenal pasti pelan ujian dan pelaksanaan ujian pada Xray.

Baca lebih lanjut mengenai pelan ujian dan kunci pelaksanaan ujian di sini

Keluaran

Skrip di atas akan menghasilkan laporan berikut di bawah 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"
    }
  ]
}
Salin selepas log masuk

Untuk mendapatkan butiran lanjut tentang k6 dan X-ray, sila hubungi dokumentasi mereka:
Dokumen K6
Dokumen XRAY

이것도 확인해 보세요 - Sérgio Freire가 작성한 멋진 기사 Xray 및 Jira를 사용하여 테스트 사례를 만들고 관리하는 방법

언제나 그랬듯, 언제든지 저에게 연락주세요!

링크드인
이메일
깃허브

Atas ialah kandungan terperinci Bagaimana untuk mengintegrasikan kith Xray/Jira. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan