首页 web前端 js教程 如何集成 Xray/Jira

如何集成 Xray/Jira

Sep 10, 2024 am 11:30 AM

在本文中,我将演示一种将 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 撰写的一篇很酷的文章

一如既往,请随时与我联系!

领英
电子邮件
GitHub

以上是如何集成 Xray/Jira的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在JavaScript中替换字符串字符 在JavaScript中替换字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替换字符串字符

jQuery检查日期是否有效 jQuery检查日期是否有效 Mar 01, 2025 am 08:51 AM

jQuery检查日期是否有效

jQuery获取元素填充/保证金 jQuery获取元素填充/保证金 Mar 01, 2025 am 08:53 AM

jQuery获取元素填充/保证金

10个jQuery手风琴选项卡 10个jQuery手风琴选项卡 Mar 01, 2025 am 01:34 AM

10个jQuery手风琴选项卡

10值得检查jQuery插件 10值得检查jQuery插件 Mar 01, 2025 am 01:29 AM

10值得检查jQuery插件

HTTP与节点和HTTP-Console调试 HTTP与节点和HTTP-Console调试 Mar 01, 2025 am 01:37 AM

HTTP与节点和HTTP-Console调试

自定义Google搜索API设置教程 自定义Google搜索API设置教程 Mar 04, 2025 am 01:06 AM

自定义Google搜索API设置教程

jQuery添加卷轴到Div jQuery添加卷轴到Div Mar 01, 2025 am 01:30 AM

jQuery添加卷轴到Div

See all articles