如何在Android Appium Test Automation中制作可选的appPackage和appActivity BeforeScenario

问题描述 投票:0回答:1

我想在@BeforeScenario中选择启动应用程序(appPackage,appActivity),以在一个测试项目中为多个应用程序开发测试场景。我知道使用启动活动,但是由于安全许可被拒绝,因此无法使用它。唯一可行的方法是使用beforeScenario中的功能。在开始测试之前,我想选择启动应用程序。我的代码:

`@BeforeScenariopublic void beforeScenario()抛出MalformedURLException {

    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities
            .setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
    desiredCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "device");
    desiredCapabilities.setCapability(MobileCapabilityType.UDID, "L2N4C19924005752");
    if (localAndroid) {
        logger.info("Local Browser");


        desiredCapabilities
                .setCapability(AndroidMobileCapabilityType.APP_PACKAGE,
                        notapadAppPackageName);
        desiredCapabilities
                .setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,
                        notepadAppActivityName);

    }

    desiredCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
    desiredCapabilities.setCapability(MobileCapabilityType.NO_RESET, true);
    desiredCapabilities.setCapability(MobileCapabilityType.FULL_RESET, false);
    desiredCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 300);
    desiredCapabilities.setCapability("unicodeKeyboard", false);
    desiredCapabilities.setCapability("appWaitDuration", 30);
    desiredCapabilities.setCapability("resetKeyboard", false);
    URL url = new URL("http://localhost:4723/wd/hub");
    appiumDriver = new AndroidDriver(url, desiredCapabilities);

    selector = SelectorFactory
            .createElementHelper(localAndroid ? SelectorType.ANDROID : SelectorType.IOS);
    appiumDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    appiumFluentWait = new FluentWait(appiumDriver);
    appiumFluentWait.withTimeout(8, TimeUnit.SECONDS)
            .pollingEvery(350, TimeUnit.MILLISECONDS)
            .ignoring(NoSuchElementException.class);
}

`

java junit automated-tests appium-android getgauge
1个回答
0
投票

您可以将apk file path作为参数传递给@before方法,以使驱动程序实例具有给定的apk,这样您就不需要appPackageappActivity

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
capabilities.setCapability(MobileCapabilityType.APP, myApp);
© www.soinside.com 2019 - 2024. All rights reserved.