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

时间:2015-09-04 06:36:01

标签: java appium

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

if($scope.savedDesc.length <= 0 && $scope.savedDesc != null && $scope.savedDesc != 'undefined') {
    access.getDesc($scope.id, function(data){
        $scope.savedDesc = data;
    });
}
  

在我的测试案例中

    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();
       }

1 个答案:

答案 0 :(得分:5)

您可以执行一项或多项操作来反复停止安装应用程序。

一个。 设置appium --no-reset标志为真:当我们不希望在会话之间重置应用状态时使用此标志(IOS:不删除应用程序plist文件; Android:don在新会话之前卸载应用程序。其默认值为False,

您可以使用&#34; appium --no-reset &#34;启动您的appium服务器命令或包括服务器功能,如:

<div data-bind="datepicker: { date: myDate, additionalData: someObservable }"></div>

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

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

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

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

您可以在下面找到我的代码:

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

希望你觉得这很有用,问候