如何在远程机器上 运行 appium 脚本?

How to run appium script in remote machine?

我有 2 台台式机,其中 Appium 脚本保存在机器 1 中,Appium 安装在机器 2 中,android 设备也连接在机器 2 中。现在我想从机器 1 中获取脚本并在机器中连接的设备中执行它 2. 如何实现。请建议我。 下面的代码我能够 运行 相同 machine.i 想要 运行 在 android 设备上连接到另一个 machine.Both 机器 ip 段是相同的段。

package com.appiumproj.test;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.*;

public class Appium {

AppiumDriver driver;

@BeforeClass
public void setUp() throws MalformedURLException{

     //Set up desired capabilities and pass the Android app-activity and app-package to Appium

   DesiredCapabilities capabilities = new DesiredCapabilities();
   capabilities.setCapability(MobileCapabilityType.VERSION, "5.0.2");
   capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
   capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"ZX1D62FPVQ");
   capabilities.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculatord");
   capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator"); 
   driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testCal(){

    
   WebElement two=driver.findElement(By.name("2"));
    two.click();
    WebElement plus=driver.findElement(By.name("+"));
    plus.click();
    WebElement four=driver.findElement(By.name("4"));
    four.click();
    WebElement equalTo=driver.findElement(By.name("="));
    equalTo.click();
   
    WebElement results=driver.findElement(By.className("android.widget.EditText"));
   
    assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6";

 System.out.println("Inside Test Function");
terClass
public void teardown(){
   
    
    driver.closeApp();
}
}
package com.appiumproj.test;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.*;

public class Appium {

AppiumDriver driver;

@BeforeClass
public void setUp() throws MalformedURLException{

     //Set up desired capabilities and pass the Android app-activity and app-package to Appium

   DesiredCapabilities capabilities = new DesiredCapabilities();
   capabilities.setCapability(MobileCapabilityType.VERSION, "5.0.2");
   capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
   capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"ZX1D62FPVQ");
   capabilities.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculatord"); // This is package name of your app (you can get it from apk info app
   capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator"); // This is Launcher activity of your app (you can get it from apk info app)
   //Create AndroidDriver instance and connect to the Appium server.
   //It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities

   driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testCal(){

    //locate the Text on the calculator by using By.name()
   WebElement two=driver.findElement(By.name("2"));
    two.click();
    WebElement plus=driver.findElement(By.name("+"));
    plus.click();
    WebElement four=driver.findElement(By.name("4"));
    four.click();
    WebElement equalTo=driver.findElement(By.name("="));
    equalTo.click();
    //locate the edit box of the calculator by using By.className()
    WebElement results=driver.findElement(By.className("android.widget.EditText"));
    //Check the calculated value on the edit box
    assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6";
/*
 System.out.println("Inside Test Function");
 driver.findElement(By.partialLinkText("More")).click();
 driver.findElement(By.xpath("//EditText[@text='Email Address']")).sendKeys("tester@gmail.com");
 driver.findElement(By.xpath("//LinearLayout/EditText[2]")).sendKeys("Testerpwd");
 driver.findElement(By.xpath("//CheckBox")).click();
 driver.findElement(By.xpath("//Button[@text='Login']")).click();

 WebDriverWait wait = new WebDriverWait(driver,80);
 wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//Button[@text='Logout']"))); 
 driver.findElement(By.xpath("//Button[@text='Logout']")).click(); 
*/
}
@AfterClass
public void teardown(){
   
    //close the app
    driver.closeApp();
}
}

在机器 2 上的 Appium 实例 运行 上给出确切的 IP 地址。默认情况下它是 127.0.0.1,删除它并在 Appium 设置中明确给出它自己的 IP 地址。这会起作用。如果没有请告诉我。