无法理解 TestNG 插件与 Jenkins 中的 Selenium Grid 的交互?

Unable to understand TestNG plugin interaction with Selenium Grid in Jenkins?

jenkins 中的 Testng 插件如何与 selenium grid hub 交互?

selenium grid hub如何将执行测试结果传递给jenkins?如果 selenium grid hub 挂了怎么办,jenkins 可以识别 selenium grid hub 是否挂了?并相应地告诉用户有关 selenium grid hub 的状态。

我们是否需要专门单独的阶段来收集测试结果报告?

Testng插件和testng报表分析插件有什么关系?

How does Testng plugin in jenkins interacts with selenium grid hub ?

TestNG Results 插件只是在寻找您的构建输出(TestNG 结果来自 XML 文件,在测试执行后生成)。

因此与Selenium Grid无关

这是您构建中的 post-action。


How selenium grid hub transfers the execution test result to jenkins?

Selenium Grid 只是一个服务,它创建和管理 WebDriver 会话。这只是您的测试使用的资源。它不直接产生任何测试结果,但您的代码(测试)向它发送一些请求并获得响应。

总结:

  1. Jenkins 作业运行 使用 TestNG 库执行测试的命令。

  2. TestNG java 库根据测试结果生成一些 输出 xml 文件

  3. 您的测试执行一些操作并可能与某些服务交互(senf HTTP 请求、连接到数据库或在 Selenium Grid 中创建 WebDriver 会话)——这是您的实现的一个特例测试。

  4. Jenkins TestNG 结果插件查找生成的输出xml 文件 以构建报告。


What if selenium grid hub is down

如果 selenium grid 已关闭,并且您在某些高级配置阶段与其交互,例如 @BeforeSuite@BeforeTest,您的配置将失败,所有相关测试将被跳过。因此,您可能会得到跳过所有测试的报告。


Can jenkins identify whether selenium grid hub is down or not?

您必须明确实施一些检查。可能的解决方案:

  • 将带有 CURL 请求的预构建操作添加到 selenium 网格以检查其状态。如果它不可用,您可以将它添加到管道并启动 selenium 网格,或者在 运行ning 测试之前以错误退出。

  • 在您的测试中实施检查。在这种情况下,您可能只跳过所有没有 运行ning 的测试。


Do we need specifically separate stage to have testng results report collection?

使用 post-build 操作,如 plugin-documentation 中所述。


What's the relation of Testng plugin and testng report analyzer plugin?

它们都执行相似的操作,但 testng 报告分析器插件显示测试结果的历史数据,而 TestNG Results 插件专注于当前构建结果。

我不确定是否可以同时使用它们..