Windows 获取 Jenkins Selenium Grid 状态的批处理命令

Windows batch command to get the Jenkins Selenium Grid status

我想使用 Jenkins 在 Selenium Grid 中执行测试,在 运行 测试之前,我想通过在 Windows 中使用 curl 和 jq 命令确保 Selenium 网格已启动并准备就绪批量。

我试过运行下面的命令:

curl http://localhost:4444/wd/hub/status

下面是整个输出的示例:

{
  "value": {
    "ready": true,
    "message": "Selenium Grid ready.",
    "nodes": [
      {
        "id": "5150c3b9-9bc2-45ad-9605-21c1c4ed90e4",
        "uri": "http:\u002f\u002f172.27.0.3:5555",
        "maxSessions": 4,
        "osInfo": {
          "arch": "amd64",
          "name": "Linux",
          "version": "5.10.16.3-microsoft-standard-WSL2"
        },
        "heartbeatPeriod": 60000,
        "availability": "UP",
        "version": "4.1.3 (revision 7b1ebf28ef)",

现在我想从上面的响应中得到ready的值和message对象,循环直到ready的值为true。

有人可以帮忙吗?

我会使用一个简单的批处理脚本来检查 Jenkins 是否启动。

@echo off

set checks=3

:again
jenkins.exe status | find "Started" >nul
if errorlevel 1 (
   timeout /t 1 1>nul
   echo %checks%
   set /a checks=checks-1
   if not "%checks%"=="0" goto :again
   goto :error
)

echo Jenkins is started
goto :eof

:error
echo Jenkins is NOT started

编辑:检查 message 的方法与上面检查“已启动”的方法大致相同。

type jenkins.json | jq -r ".value.message" | find "Selenium Grid ready."

在此之后,当文本“Selenium Grid ready”时,错误级别将为 1。未找到,找到则为0。