如何在Jenkins Pipeline中以编程方式和自动化方式停止Appium服务器

当您尝试关闭它时,Appium服务器有时无法停止,服务器和端口仍然永远挂起,并且Appium CLI没有内置命令来停止服务器,这使得以编程方式进行管理变得更加困难

想象一下,您希望通过CI / CD管道中的自动化过程以编程方式管理它 像詹金斯(Jenkins)这样的故事,可能是一个非常痛苦的故事

appium
or
appium & (as background process)

启动Appium服务器的命令,只有在终止它时它才能停止,但有时不能停止

dongzh00 回答:如何在Jenkins Pipeline中以编程方式和自动化方式停止Appium服务器

我已经在StackOverflow上搜索答案很长时间了,但没有一个直接回答我的问题

到目前为止,看来可行的方法是您必须在具有特定进程ID的Shell中手动终止服务器的进程

要使其简单地与管道一起使用,我们可以使用命令的简短版本

 kill $(lsof -t -i :4723)
 kill \$(lsof -t -i :${APPIUM_PORT}) [In Jenkinsfile]

APPIUM_PORT 是您的Appium端口,默认端口是 4723
lsof 命令应在类似Unix的系统中运行,例如MacOS,Linux

  

lsof是一个命令,表示“列出打开的文件”,该命令在许多情况下都使用   类似于Unix的系统,用于报告所有打开文件和进程的列表   打开了他们

通过运行此命令,它应该返回在该特定端口上运行的进程的ID,以用于终止信号

在管道中实施 在您的Jenkinsfile的末尾添加此步骤

    post{
        always{
            ...
            echo "Stop appium server"
            sh "kill \$(lsof -t -i :${APPIUM_PORT})"
        }
        success{
            ...
        }
        failure{
            ...
        }
        cleanup{
            ...
        }
    }

它将杀死挂起的Appium服务器进程,您可以使用相同的端口再次启动新的Appium服务器!

要查看更多详细信息,我已经在此处发布了博客
How to start/stop Appium server in Jenkins Pipeline

希望有帮助

本文链接:https://www.f2er.com/3157281.html

大家都在问