Я долго искал ответ в StackOverflow, и никто из них не отвечал прямо на мой вопрос
Пока что похоже на то, что вам нужно убить процесс сервера вручную воболочка с определенным идентификатором процесса
Чтобы она просто работала с конвейером, у нас может быть короткая версия команды
kill $(lsof -t -i :4723)
kill \$(lsof -t -i :${APPIUM_PORT}) [In Jenkinsfile]
Где APPIUM_PORT ваш порт Appium, порт по умолчанию 4723
lsof команда должна работать в Unix-подобных системах, например MacOS, Linux
lsof - это командачто означает «список открытых файлов», который используется во многих Unix-подобных системах для сообщения списка всех открытых файлов и процессов, которые их открыли
Запустив эту команду, он должен вернуть идентификаторпроцесс, запущенный на этом конкретном порту для использования в качестве сигнала уничтожения
Для реализации в конвейере Добавьте этот шаг в конец вашего Jenkinsfile
post{
always{
...
echo "Stop appium server"
sh "kill \$(lsof -t -i :${APPIUM_PORT})"
}
success{
...
}
failure{
...
}
cleanup{
...
}
}
Он должен уничтожить зависший набор Appiumrver, и вы можете снова запустить новый сервер Appium с тем же портом!
Чтобы узнать больше об этом, я уже публикую блог здесь
Как запустить / остановить сервер Appium в Jenkins Pipeline
Надеюсь, это поможет