【问题标题】:Run appium server via Jenkins on Windows在 Windows 上通过 Jenkins 运行 appium 服务器
【发布时间】:2019-11-30 20:37:38
【问题描述】:

我需要在 Windows Jenkins slave 上运行 appium 服务器。

我通过“执行 windows 命令”使用以下命令:

appium & --device_name Nexus_S 
mvn test

但是当我运行 appium 时,命令行只是“挂断”并不断显示服务器控制台。 我该怎么做才能忽略那个持续的任务并执行下一个命令?

【问题讨论】:

    标签: jenkins appium


    【解决方案1】:

    您需要将 appium 作为新进程运行。

    要运行 appium,请使用:

    call start "appium" appium & --device_name Nexus_S
    

    它将以“appium”开头的名称启动新进程(您可以选择所需的名称)。您可以稍后使用此名称来终止该进程。

    杀死appium使用:

    taskkill /f /fi "WINDOWTITLE eq appium*" /t
    

    它将杀死名称以“appium”开头的进程(我们之前使用过)。 参数 /t 表示所有子进程也被杀死。 (Appium server 不只是一个进程)

    【讨论】:

    • 你好。如果有帮助,您能否将其标记为正确答案?
    【解决方案2】:

    您可以使用以下命令启动 Appium:

    call start cmd.exe /k PATH_TO_NODE_JS PATH_TO_APPIUM_JS --address IP_ADDRESS --port PORT_NUMBER
    

    就我而言:

    • PATH_TO_NODE_JS 是 C:/node/node.exe
    • PATH_TO_APPIUM_JS 是 C:/Users/saqada/AppData/Local/Programs/appium-desktop/resources/app/node_modules/appium/build/lib/main.js
    • IP_ADDRESS 是 127.0.0.1
    • PORT_NUMBER 是 4725

    完整的命令如下:

    call start cmd.exe /k C:/node/node.exe C:/Users/saqada/AppData/Local/Programs/appium-desktop/resources/app/node_modules/appium/build/lib/main.js --address 127.0.0.1 --port 4725
    

    当您从 Jenkins 启动 Appium 服务器时,您无需手动停止它,因为 Jenkins 会为您处理它。因此,在完成 Jenkins 作业后,由 Jenkins 创建的 Appium 服务器及其所有相关进程将被终止。

    但是,如果您从命令行启动 Appium 并想要停止它,您可以使用:

    taskkill /f /fi "IMAGENAME eq node.exe" /t
    

    请记住,在某些情况下main.js 不起作用,您需要使用Appium.js,您可以在与 main.js 相同的位置找到它

    【讨论】:

      【解决方案3】:

      您可以使用appium & 命令。

      命令末尾的& 将在后台运行它并且不会冻结终端。

      请参考answer

      【讨论】: