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.
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
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:
Sebelum anda bermula, pastikan anda telah memasang yang berikut pada mesin anda:
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.
Imej di bawah daripada dokumen Xray menunjukkan kes ujian dengan kunci CALC-01 dan CALC-02.
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 });
Skrip menjana fail JSON yang serasi dengan Xray, disimpan dalam direktori yang sama dengan skrip.
git clone https://github.com/skingori/k6-json-xray.git
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";
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";
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) }; }
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
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) }; }
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.
Untuk menjalankan skrip, gunakan arahan berikut:
k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
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
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" } ] }
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!