首頁 > web前端 > js教程 > 如何整合 Xray/Jira

如何整合 Xray/Jira

WBOY
發布: 2024-09-10 11:30:51
原創
534 人瀏覽過

在本文中,我將示範一種將 k6 與 XRAY/Jira 整合的簡單方法。

不久前,我被指派了一項任務,為一個預計能夠處理相當多請求的 API 編寫效能測試。出於這個原因,我們需要一個好的工具,它可以更快地使用,任何 QA 工程師都可以更輕鬆地做出貢獻。
過去使用過負載衝擊,我對K6非常熟悉。以下是我們選擇 k6 而不是其他效能測試工具的主要原因:

  • 使用 Javascript:我團隊中的大多數 QA/開發人員都熟悉 javascript,因此無需學習新語言

  • 開源:這意味著使用該工具不需要付費,並且社區很活躍

  • CI/CD:將 k6 與我們的 CI/CD 管道整合非常簡單

我可以繼續選擇 k6 的優點,但我會寫一篇新文章專門討論這一點。

完成測試框架後,我們希望在 Jira 上獲得測試結果。由於我們已經在使用 XRAY,因此我們需要一個解決方案將 k6 JSON 報表轉換為 X 光格式。我找不到任何適合我們案例的解決方案。

K6 句柄摘要()

K6 有一個基本功能,可用來取得所有指標。這些選項是 stdout、XML 和 JSON。

為此,我們只需要建立一個腳本來從handleSummary 函數取得資料物件。

以下是將資料物件從 k6 轉換為簡單 XRAY 格式報告的腳本:

k6-XRAY-腳本

如何為 k6 和 Xray 整合設定生成器幫助程式腳本

將儲存庫複製到您想要的位置:
最好在主專案中建立一個資料夾。

範例:
助理、src、報告

這將幫助您順利管理導入,不會出現任何問題:

先決條件

開始之前,請確保您的電腦上安裝了以下軟體:

  • Node.js
  • npm
  • k6

用法

如果您的 k6 測試是分組組織的,並且每個群組標題對應 Xray 上的一個測試案例,您可以使用生成器腳本建立與 Xray 相容的 JSON 檔案。

例子

Xray 文件中的下圖顯示了帶有 CALC-01 和 CALC-02 鍵的測試案例。

How to integrate kith Xray/Jira

在您的 k6 測試腳本中,您可以將群組標題命名為 CALC-01 和 CALC-02。該腳本將搜尋這些群組名稱並將測試結果指派給 Xray 上的相應測試案例。

group('CALC-01', function() {
  // test code
});
group('CALC-02', function() {
  // test code
});
登入後複製

輸出

腳本產生一個與Xray相容的JSON文件,保存在與腳本相同的目錄中。

克隆儲存庫

git clone https://github.com/skingori/k6-json-xray.git
登入後複製

如何設定腳本

我們將使用k6提供的handleSummary函數和generator.js腳本中的textSummary來產生JSON檔。 handleSummary 函數接收一個資料對象,我們將其傳遞給 getSummary 以將其修改為 Xray 相容的格式。

在此閱讀更多關於 k6 HandleSummary 的資訊

更改開啟執行腳本並新增以下行:

import { getSummary } from "./generator.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
登入後複製

我直接使用 ./generator.js,因為它與我的腳本位於同一資料夾中。假設您正在使用助手,這應該是:

import { getSummary } from "./helper/generator.js";
登入後複製

在程式碼末尾加上handleSummary 函數:

export function handleSummary(data) {
    return {
        stdout: textSummary(data, { indent: " ", enableColors: true }),
        "summary.json": JSON.stringify(getSummary(data, "CALC-2062", "CALC"), null, 2)
    };
}
登入後複製

我們的函數 getSummary 會將資料物件轉換為 X 射線預期格式並將輸出儲存到 summary.json 檔案

為什麼我們要使用 textSummary?

要在控制台上列印輸出,我們需要從 k6 JS 實用程式庫匯入 textSummary

但這可能並不適用於所有人,如果您不需要任何標準輸出報告,則不必匯入文字Summary

例子
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)
    };
}
登入後複製

注意:如果您不想匯入 textSummary

,可以刪除 stdout: textSummary(data, { indent: " ", enableColors: true }), line

handleSummary 預設工作,通常在測試生命週期結束時呼叫。

運行腳本

要執行腳本,請使用以下命令:

k6 run script.js -e TEST_PLAN_KEY="CALC-2345" -e TEST_EXEC_KEY="CALC-0009"
登入後複製

TEST_PLAN_KEY 和 TEST_EXEC_KEY 用於識別 Xray 上的測試計畫和測試執行。

在此處了解有關測試計劃和測試執行鍵的更多資訊

輸出

上述腳本將在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"
    }
  ]
}
登入後複製

要獲取有關 k6 和 X-ray 的更多詳細信息,請參閱他們的文檔:
K6 文檔
XRAY 檔案

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

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

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

以上是如何整合 Xray/Jira的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板