Пакетная команда Windows для получения статуса Jenkins Selenium Grid

Я хочу выполнить тесты в Selenium Grid с помощью Jenkins, и перед запуском тестов я хочу убедиться, что Selenium Grid запущен и готов, используя команды curl и jq в пакете Windows.

Я попытался запустить следующую команду:

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)",

Теперь я хочу получить значение готовности и объекта сообщения из приведенного выше ответа и зациклить его, пока значение готовности не станет истинным.

Кто-нибудь может помочь здесь?

Можете ли вы опубликовать полный (действительный) документ json. (Я не могу проверить это, потому что мне нужна авторизация при запуске Jenkins на моей машине)

Luuk 23.04.2022 12:30

Я хочу проверить, работает ли сеть Selenium на основе полученного ответа, как показано выше.

Sandesh Sawant 23.04.2022 12:35
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы использовал простой пакетный скрипт, чтобы проверить, запущен ли 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."

После этого уровень ошибки будет равен 1, когда текст «Selenium Grid готов». не найден, и 0, если он найден.

Люк спасибо за ответ. Это то, что я хотел.

Sandesh Sawant 01.05.2022 11:32

Другие вопросы по теме