es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo detener el servidor de Appium utilizando NodeJs en Java.

Estoy tratando de iniciar y detener el servidor de Appium de forma programática.

Tengo nodeJS instalado en mi sistema.

Para iniciar el servidor estoy usando el comando “appium” en un archivo por lotes y ejecutando ese archivo por lotes usando Java.

Para detener el servidor:

Preparar el código ejecución:

Runtime runtime = Runtime.getRuntime();
runtime.exec("taskkill /F /IM node.exe");

Pero al usar taskKill, el servidor no se detiene.

Por favor, sugiera algún método por el cual pueda detener el servidor de Appium en ejecución.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hay varias formas de detener el servidor de Appium en ejecución de forma programática. Una forma es utilizar la API REST del servidor de Appium para enviar una solicitud POST al servidor y cerrarlo.

    Aquí tienes un ejemplo de fragmento de código en Java:

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class AppiumServer {
    
       // Iniciar el servidor de Appium ejecutando un archivo por lotes
       public void startServer() {
          try {
             Runtime.getRuntime().exec("cmd /c start /b start_appium.bat");
             Thread.sleep(5000); // espera a que el servidor se inicie
          } catch (Exception e) {
             e.printStackTrace();
          }
       }
    
       // Detener el servidor de Appium utilizando una solicitud POST HTTP a la API
       public void stopServer() {
          try {
             URL url = new URL("http://127.0.0.1:4723/wd/hub/shutdown");
             HttpURLConnection connection = (HttpURLConnection) url.openConnection();
             connection.setRequestMethod("POST");
             connection.getResponseCode();
             BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
             String line = reader.readLine();
             while (line != null) {
                System.out.println(line);
                line = reader.readLine();
             }
             reader.close();
          } catch (Exception e) {
             e.printStackTrace();
          }
       }
    }
    

    En el método startServer(), estamos utilizando Runtime.getRuntime().exec() para ejecutar un archivo por lotes (start_appium.bat) para iniciar el servidor de Appium. También esperamos 5 segundos para que el servidor se inicie.

    En el método stopServer(), creamos un objeto URL con el punto final de la API para cerrar el servidor (http://127.0.0.1:4723/wd/hub/shutdown`), y utilizamosHttpURLConnection` para enviar una solicitud POST a esa URL. También leemos la respuesta del servidor e imprimimos en la consola.

    Ten en cuenta que este código asume que el servidor de Appium se está ejecutando en el puerto predeterminado (4723) y que el punto final de la API es /wd/hub/shutdown. Es posible que necesites ajustar estos valores si estás utilizando una configuración diferente.

    ¡Espero que esto te sea de ayuda!

Comments are closed.