微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 如何在套件中执行多个测试用例时一次又一次地打开安装Android应用程序?

使用driver.launchApp();我的应用程序每次都重新安装.那我怎么能阻止这个呢?

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.broWSER_NAME, "Android");
    capabilities.setCapability(CapabilityType.VERSION, Android_Version);
    capabilities.setCapability(CapabilityType.PLATFORM, "Android");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("deviceName", DeviceName);
    capabilities.setCapability("app", app.getAbsolutePath());
    capabilities.setCapability("app-package", app_package);
    capabilities.setCapability("app-activity", app_activity);

    try{
        driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        APP_LOGS.info("Appium driver is initialized!!");
        driver.closeApp();
       }

IN My Test Cases

@Test
public void Test2()
{
   driver.launchApp();
    System.out.println("this is second test in appium suite");
    driver.closeApp();
}

解决方法:

您可以执行一项或多项操作来一次又一次地停止安装应用程序.

一个.设置appium –no-reset标志为true:当我们不想在会话之间重置应用程序状态时使用此标志(IOS:不删除应用程序plist文件; Android:在新会话之前不要卸载应用程序).它的认值为False,

您可以使用“appium –no-reset”命令启动appium服务器,或者包括服务器功能,例如:

capabilities.setCapability("noreset","true");

湾确保–full-reset标志为False ::(iOS)删除整个模拟器文件夹. (Android)通过卸载应用而不是清除应用数据来重置应用状态.在Android上,这也将在会话完成后删除应用程序.认为false.

capabilities.setCapability("fullReset","false");

C.我认为您需要从测试用例中删除launceApp()和closeApp()方法,而不是只编写测试用例代码instde @Test Case方法

d.只要确保您的应用程序已经安装在设备上,认情况下单元测试的执行顺序就像@Before @Test和@After所以您的SetUp方法将首先运行,而不是您的测试用例和最后的Teardown方法.因此Setup()将包含服务器功能和测试环境. Specification和TearDown()将用于关闭/退出应用程序,

您可以在下面查找我的代码

@Before
public void setup(){
    DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("noreset","true");
            capabilities.setCapability("fullReset","false");
            capabilities.setCapability("automationName","Appium");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("VERSION", "5.1.1");
            capabilities.setCapability("deviceName", "LG Nexus 5");
            capabilities.setCapability("appPackage", "com.packageName");
            capabilities.setCapability("appActivity", "ui.activity.SplashScreenActivity");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void sampletest(){
//Testing Code Only
}

//To Exit/Quit close the driver
    @After
    public void teardown() {
        if (driver != null)
            driver.quit();
    }

希望你发现这个有用,问候

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐