Selenium webdriver 当测试结果失败时,容器状态为错误

Selenium webdriver 当测试结果失败时,容器状态为错误,selenium-webdriver,kubernetes,testng,containers,minikube,Selenium Webdriver,Kubernetes,Testng,Containers,Minikube,我已经使用minikube在本地设置了Kubernetes环境。我创建了一个包含3个容器的作业 枢纽 铬 应用程序(Selenium TestNG) 当我申请/创建作业时,将设置Hub/Chrome/App。执行selenium测试 如果所有测试都成功完成,您将看到容器的状态,如下所示 webAutomation1应用程序的结果 上述情况与预期相符。在容器列表方面看起来不错 现在,如果我们已经完成了应用程序(执行测试),但出现了如下失败 然后,我的容器列表将显示为错误 现在我使用IT

我已经使用minikube在本地设置了Kubernetes环境。我创建了一个包含3个容器的作业

  • 枢纽
  • 应用程序(Selenium TestNG)
当我申请/创建作业时,将设置Hub/Chrome/App。执行selenium测试

如果所有测试都成功完成,您将看到容器的状态,如下所示

webAutomation1应用程序的结果

上述情况与预期相符。在容器列表方面看起来不错

现在,如果我们已经完成了应用程序(执行测试),但出现了如下失败

然后,我的容器列表将显示为错误

现在我使用ITestListenr将日志写入控制台。使容器状态转为错误是什么。?在容器和应用程序之间的集成方面,有什么我看不到的吗

如果有人能帮助我,我们将不胜感激。

请按照:

当TestNG完成执行时,它将以返回代码退出。这 可以检查返回代码以了解故障的性质 (如果有的话)。下表总结了不同的出口 TestNG当前使用的代码

/**
 * |---------------------|---------|--------|-------------|------------------------------------------|
 * | FailedWithinSuccess | Skipped | Failed | Status Code | Remarks                                  |
 * |---------------------|---------|--------|-------------|------------------------------------------|
 * | 0                   | 0       | 0      | 0           | Passed tests                             |
 * | 0                   | 0       | 1      | 1           | Failed tests                             |
 * | 0                   | 1       | 0      | 2           | Skipped tests                            |
 * | 0                   | 1       | 1      | 3           | Skipped/Failed tests                     |
 * | 1                   | 0       | 0      | 4           | FailedWithinSuccess tests                |
 * | 1                   | 0       | 1      | 5           | FailedWithinSuccess/Failed tests         |
 * | 1                   | 1       | 0      | 6           | FailedWithinSuccess/Skipped tests        |
 * | 1                   | 1       | 1      | 7           | FailedWithinSuccess/Skipped/Failed tests |
 * |---------------------|---------|--------|-------------|------------------------------------------|
 */
您的容器可能正在使用TestNG作为主进程,任何未被视为通过测试的测试(即退出代码不同于0)都将导致pod处于终止/错误状态

您可以通过以下方式确认这一点

e、 g:你可以检查你的吊舱状态;输出如下所示:

$ kubectl get my-pod-name -o=json | jq .status.containerStatuses[].state
{
  "terminated": {
    "containerID": "docker://9bc2497ec0d2bc3b1b62483c217aaaaa1027102a5f7ff1688f47b94254",
    "exitCode": 1,
    "finishedAt": "2019-10-28T02:00:10Z",
    "reason": "Error",
    "startedAt": "2019-10-28T02:00:05Z"
  }
}

并检查退出代码是否与您的TestNG状态代码匹配。

如果测试失败,则返回代码不是0,从而导致pod中的退出代码出错?@Edurado,完美!我确实查过了。谢谢你的回答。它确实告诉我问题出在哪里。是否有一种方法可以始终将状态代码0发送到容器?这样它就以完成状态结束了吗?您可以在作业命令中附加。。。