jenkins 在Java应用程序的机器人框架中编写的测试用例的代码覆盖率报告

j2cgzkjk  于 2023-11-17  发布在  Jenkins
关注(0)|答案(1)|浏览(180)

我有一个场景,我试图获得我们使用机器人框架编写的功能测试用例的覆盖率报告。应用程序后端是用java编写的,UI代码是用Vue.js编写的应用程序部署在K8s集群中作为容器运行。应用程序ULS是使用Ingress控制器公开的。我们使用来自另一台服务器的jenkins触发机器人测试用例。我想获得功能测试用例的代码覆盖率。我们运行的测试用例。任何关于我们可以使用什么工具以及如何获得它的建议都将非常感谢。
仅供参考-我已经在使用JaCoCo进行单元测试用例覆盖。
谢谢,乌特卡什
我按照下面的URL. Jacoco: Find code coverage for external tests我添加到我的构建.gradle

jacocoTestReport { 
reports { 
xml.enabled false 
csv.enabled false 
html.destination file("$buildDir/reports/coverage") 
}

字符串
在为我的应用java -jar myApp.jar -javaagent:/some/path/jacocoagent.jar构建Docker镜像之前,我更新了我的Docker文件,如下所示
然后我开始从Jenkins服务器执行功能测试用例。
在此之后,我无法理解如何生成覆盖率报告。可能是我需要在pod中执行以下命令来获取覆盖率报告。但我不确定在容器中打包gradle二进制文件是否是个好主意,因为它会增加docker镜像的大小。我如何从jenkins自动化此过程以在作业页面上显示覆盖率报告。./gradlew jacocoTestReport
任何建议都会有帮助。

g9icjywg

g9icjywg1#

我能够获得我的回归测试套件的覆盖率。我手动完成了这一操作,只是为了首先证明概念。我的应用程序在Kubernetes集群中作为Pod运行,应用程序URL(https://example.com)通过ingress控制器暴露。我的测试用例是使用Jenkins从不同的服务器触发的,我们使用robot框架。当测试用例被触发时,它访问URL example.com并开始执行测试用例。
我遵循的步骤:
1.在pod或容器中添加了jacocoagent.jar和jacococli.jar。
1.在K8上通过YML文件部署应用时,设置下面的JVM参数。您也可以通过dockerfile设置。javaagent:/tmp/jacocoagent.jar=output=tcpserver,includes=com/x/y/z/*,address ='asterisk symbol',port=6300,append=false
1.我启动了我的回归套件。
1.进入pod并使用jacococli.jar转储exec文件

java -jar jacococli.jar dump --address localhost --port 6300 --destfile jacoco-server.exec

1.将上述执行文件“jacoco-server.exec”复制到我的本地。
1.已将exec文件转换为html报告。

java -jar jacococli.jar report jacoco-server.exec --classfiles classes/--html html**

注意:类文件路径必须在这里。
这就是我所做的来证明这个概念。为了自动化这个过程,我将使用输出模式作为“file”而不是“tcpserver”,并将在创建报告的地方设置一个“destpath”。使用模式作为“file”,jacoco.exec文件将在VM/pod终止时写入destpath。我仍然需要使用K8测试输出模式作为文件选项。

相关问题