我使用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这是我为每个测试设置的(运行标记明显改变了),用于黄瓜的胶水和用于reportportal的插件都在runner方法中。
发布于 2019-10-15 12:26:11
TestNG并不是强制性的。在这里,您可以发现基于JVM的集成信任https://reportportal.io/docs/JVM-based-clients-configuration,这意味着,如果您使用CucumberJVM (它下面有jUnit ),您可以使用任何相关的参数。
要指定启动的名称,可以在reportportal.properties文件中或通过命令行将其设置为-Drp.launch=zzz
但是它不能解决多线程的问题。为了将所有并行线程报告到1启动中,您可以通过以下两种方式实现它:
launchID。这意味着您可以在ReportPortal (作为测试运行程序的一部分或作为Jenkins步骤前+ cUrl请求的一部分)启动。接收launchID并与其他线程/运行程序共享它。运行程序将使用这个id来发布数据,而不是为每个线程创建新的启动。最后,请完成启动。。
与ReportPortal v1-v4相关。
对于版本5+ of ReportPortal,我们计划通过重新运行功能来最小化这种工作。https://github.com/reportportal/reportportal/issues/363
默认情况下,测试运行程序将通过本地存储上的文件共享launchID。如果在此环境中启动任何其他并行线程,则将使用launchID自动报告。
它仍然不影响这种情况,如果您有并行执行,以并行模式在乘VM启动,但是我们也将尝试解决这个问题。
https://stackoverflow.com/questions/58200113
复制相似问题