网络知识 娱乐 在 GitLab 中自动化生成测试报告

在 GitLab 中自动化生成测试报告

在 GitLab 中报告测试结果

在 GitLab 中自动化生成测试报告

在 GitLab 中报告测试结果

本内容,我将讲述如何在运行pipeline后在 GitLab 和 GitLab 页面中使用基于 jUnit 和 HTML(等 Allure)的报告测试结果。

让我们在开始之前看看报告会是什么样子……

jUnit 报告

在 GitLab 中自动化生成测试报告

在 GitLab 中自动化生成测试报告

基于 HTML 的报告

在 GitLab 中自动化生成测试报告

在 GitLab 中自动化生成测试报告

jUnit Reporting

编辑你的 .gitlab-ci.yml

image: maven:3.6.3-jdk-11nnstages:n - TestnnTest:n stage: Testn script:n - mvn clean installn artifacts:n when: alwaysn paths:n - target/JUnitReport/n expire_in: 1 weekn reports:n junit: target/JUnitReport/report.xmln only:n - mastern

对于此脚本,在运行测试脚本后,JUnit 报告会在target/JUnitReport/path

Artifacts 归档提供在 GitLab 中存储文件。

1)你需要将生成 报告路径定义为artifacts > path,如下所示,这是存储 JUnit 生成的 .xml 文件的路径。

2) reports > junit字段提供在 GitLab ci 作业中显示 JUnit 报告。因此,需要在我们在步骤 1 中定义的路径下定义 JUnit 生成的 .xml 文件的路径。

3) expire_in字段提供存储报告保留时间。在此示例中,JUnit 工件将在 1 周后被删除。

artifacts:n when: alwaysn paths:n - target/JUnitReport/n expire_in: 1 weekn reports:n junit: target/JUnitReport/report.xmln

要查看结果,请按照以下步骤操作;GitLab > CI/CD > Pipelines > Click on pipeline number > Click Tests tab

编辑.gitlab-ci.yml如下;我们在这个脚本中有 2 个阶段(测试和报告)。

Test:n stage: Testn script:n - mvn clean installn - mvn allure:reportn artifacts:n when: alwaysn paths:n - target/allure-reportn expire_in: 1 weekn only:n - masternnReport:n stage: Reportn only:n - mastern script:n - mkdir publicn - mv target/allure-report/* publicn artifacts:n when: alwaysn paths:n - publicn expire_in: 1 weekn

测试阶段运行测试,然后将 allure 测试结果作为 HTML 导出到target/allure-repot路径。然后将target/allure-repot路径存储到下周。

Test:n stage: Testn script:n - mvn clean installn - mvn allure:reportn artifacts:n when: alwaysn paths:n - target/allure-reportn expire_in: 1 weekn only:n - mastern

现在!我们已经存储了我们的报告文件。

报告阶段将测试阶段存储的文件移动到公用文件夹。

Report:n stage: Reportn only:n - mastern script:n - mkdir publicn - mv target/allure-report/* publicn artifacts:n when: alwaysn paths:n - publicn expire_in: 1 weekn

要查看结果,请执行以下步骤;GitLab 中的项目 > CI/CD > pipeline > 单击pipeline编号 > 单击作业选项卡 > 单击报告阶段下的作业 ID > 单击作业工件下的浏览按钮

在 GitLab 中自动化生成测试报告

在 GitLab 中自动化生成测试报告

单击公共路径,然后单击要显示的 HTML 文件。将显示报告。

此外,你可以将 HTML 报告的 URL 发送到松弛通道。我有可以发送松弛消息的 report.sh 文件。report.sh 文件采用项目名称、作业 ID 和项目的基本 GitLab 页面 URL 的参数。

这些变量由 gitlab 提供;

${CI_PROJECT_NAME}:项目名称

${CI_JOB_ID}:作业 ID

${CI_PAGES_URL}:项目 gitlab 页面 url

Report:n stage: Reportn only:n - mastern script:n - mkdir publicn - mv target/allure-report/* publicn - sh .report/slack.sh ${CI_PROJECT_NAME} ${CI_JOB_ID} ${CI_PAGES_URL}n artifacts:n when: alwaysn paths:n - publicn expire_in: 1 weekn

report.sh

#!/bin/shnnPROJECT_NAME=$1nJOB_ID=$2nPAGES_URL=$3nnfind=".com"nreplaceWith=".com/-"nnewUrl=$(echo "$PAGES_URL" | sed "s/$find/$replaceWith/")nnewUrl="$newUrl/-/jobs/$JOB_ID/artifacts/public/index.html"nnmessage="$PROJECT_NAME results $newUrl"ncurl --location --request POST 'https://hooks.slack.com/services/..........' n--header 'Content-Type: application/json' n--data-raw "{ "text": "$message", "channel": "ugc-test-alert"}"n

pipeline运行后,将发送带有报告 URL 的消息