Appium并行测试线程本地



我正在尝试通过硒网格运行并行测试。

我知道我必须使用";线程本地";对于并行执行,但是我的代码有问题。

无法调用";io.apium.java_client.android.AndroidDriver.findElementByAccessibilityId(字符串("因为";驱动器";为空

你能解决它吗

package appiumset;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;
public class _2_Deviceinfo {


public ThreadLocal<AppiumDriver> driver = new ThreadLocal<>();

public void setDriver(AppiumDriver driver) {
this.driver.set(driver);
}

public AppiumDriver getDriver() {
return this.driver.get();
}


@Parameters({"device", "apppackage", "activity","version","appiumServer" , "systemPort", "platformName"})
@BeforeMethod
public synchronized void deviceSetUp(String device, String apppackage, String activity, String version, String appiumServer, String systemPort, String platformName) throws InterruptedException, MalformedURLException {
System.out.println("****************************************");
System.out.println("Setting up device and desired capabilities");

DesiredCapabilities cap = new DesiredCapabilities();
URL url = new URL(appiumServer);

setDriver(new AndroidDriver<>(url, cap));

cap.setCapability(MobileCapabilityType.DEVICE_NAME, device);
cap.setCapability(MobileCapabilityType.UDID, device);
cap.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, systemPort);
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 120);
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, platformName);
//cap.setCapability(MobileCapabilityType., BrowserType.ANDROID);
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, version);



cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, apppackage);

cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, activity);

cap.setCapability("automationName", "UiAutomator2");
cap.setCapability("noReset","false");
cap.setCapability("FullReset","true");

cap.setCapability("APP_WAIT_ACTIVITY", "*");
cap.setCapability("autowebview","false");


}


@AfterMethod
public void closeDriver() {
getDriver().quit();

}
}

我找不到驱动程序(AppiumDriver(

package appiumset;
import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.Test;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;

public class _3_Onboarding extends _1_Appstart { 

@Test
public void onboarding() throws MalformedURLException, InterruptedException  {

System.out.println("_3_Onboarding Start");

MobileElement arrow = driver.findElementByAccessibilityId("next");   
arrow.click();
System.out.println("next-done");
}

}

将类_2_Deviceinfo的getdriver((方法调用到测试类。应用程序驱动程序<gt;driver=getDriver((;

MobileElement arrow=driver.findElementByAccessibilityId("next"(
arrow.click((;

最新更新