在ReportPortal中手动设置启动名称,Java

在ReportPortal中手动设置启动名称,Java,java,jenkins-pipeline,reportportal,Java,Jenkins Pipeline,Reportportal,我正在使用Jenkins管道并行运行测试,当测试发送到ReportPortal时出现问题,它们都在单独的启动中,我试图做的是手动设置测试的启动名称(精确的启动编号),以便它们都在一次启动中 我在这里寻找答案,但只找到了NUnit和TestNG的一些答案(这对我没有帮助,因为我有单独的程序实例)。我使用Java主类来运行管道中的每个测试,我读到我可以将启动名称设置为环境变量。遗憾的是,我找不到任何关于它的实现情况的信息。我的问题是,甚至可以在没有TestNG的情况下设置启动名称吗?如果可以使用环境

我正在使用Jenkins管道并行运行测试,当测试发送到ReportPortal时出现问题,它们都在单独的启动中,我试图做的是手动设置测试的启动名称(精确的启动编号),以便它们都在一次启动中

我在这里寻找答案,但只找到了NUnit和TestNG的一些答案(这对我没有帮助,因为我有单独的程序实例)。我使用Java主类来运行管道中的每个测试,我读到我可以将启动名称设置为环境变量。遗憾的是,我找不到任何关于它的实现情况的信息。我的问题是,甚至可以在没有TestNG的情况下设置启动名称吗?如果可以使用环境变量,我应该如何在runner方法中使用变量来强制启动名称

 java -Dmaven.clean.skip=true -Dbrowser=firefox -Dos=linux -jar -Drun.tags=@CreateEntity target/standalone/web-tests.jar

这是我为每个测试所做的设置(运行标签会发生明显变化),cucumber的胶水和reportportal的插件都在runner方法中。

TestNG对它不是强制性的。在这里,您可以找到基于JVM的集成配置 这意味着,如果您使用CucumberJVM(在引擎盖下有jUnit),您可以使用任何相关参数

要指定启动名称,可以在
reportportal.properties
文件中或通过命令行将其设置为
-Drp.launch=zzz

但它不能解决多线程的问题。为了将所有并行线程报告到1次启动中,可以通过两种方式进行:

  • 跨线程共享
    launchID
    。这意味着您可以从ReportPortal开始启动(作为测试运行程序的一部分或作为Jenkins pre-step+
    cUrl
    请求)。接收
    launchID
    ,并与其他线程/运行程序共享它。运行者将使用此id发布数据,而不是为每个线程创建新的启动。最后,进行post步骤以完成启动
  • 通过UI或API合并启动。一旦所有执行完成,您可以通过UI合并它们。或者,您可以在并行会话期间收集启动ID,在所有执行完成后,只需运行API调用来合并启动
  • 与ReportPortal v1-v4相关

    对于ReportPortal的5+版本,我们计划通过重新运行功能将此工作量降至最低

    默认情况下,测试运行程序将通过本地存储上的文件共享
    launchID
    。如果在此环境中启动任何其他并行线程,则将使用
    launchID
    自动进行报告


    如果在多个虚拟机上以并行模式启动并行执行,这仍然不会影响该情况,但我们也将尝试解决该情况。

    我一直在尝试找出合并的API请求,可惜没有成功。我得到了400个响应,正文说:
    {“error\u code”:40016,“message”:“处理请求时出错。请检查指定的参数:'[DemoScenarios]'”}
    ,如果我在数组中添加了更多值,它将变为:
    {“error\u code”:40016,“message”:“处理请求时出错。请检查指定的参数:'[]'”
    我发送的请求正文:`{“启动”:[“DemoScenarios#23”,“DemoScenarios#24”],“merge#type”:“BASIC”,“name”:“test”}`