Я новичок в тестировании автоматизации и использую Appium для автоматизации некоторых тестов E2E для нативного приложения Android .Мои тестовые файлы написаны на Java.
Я заметил, что после методов тестирования в классе тестирования приложение не корректно закрывается, т.е. вызывает onDestroy () или OnPause () .Я заметил это, потому что я храню некоторые данные в SharedPreferences (в onDestroy () и onPause ()), и файл остается нетронутым или не создается вообще.
Я пробовал различные комбинации установки для параметра Desired Capability noReset значения true / false и вызова driver.quit () или driver.closeApp в @AfterMethod.
Я запускаю тест на AVD (Pixel 2).onResume () и onCreate (), кажется, вызываются правильно.
Мое единственное решение на данный момент было бы записывать данные в файл в другой точке, но я чувствую, что это действительно взломано и служит только для выполнения теста.
Поэтому я был бы очень признателен за помощь!
СПАСИБО
Это должен быть соответствующий код:
@BeforeMethod
public void setup () throws MalformedURLException {
DesiredCapabilities caps caps = new DesiredCapabilities();
caps.setCapability("deviceName", "device");
caps.setCapability("udid", "emulator-5554");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "8.0");
caps.setCapability("skipUnlock","true");
caps.setCapability("noReset",false);
caps.setCapability("fullReset",true);
caps.setCapability("app", "/path/to/my/app-debug.apk");
driver = new AndroidDriver<MobileElement>(new
URL("http://0.0.0.0:4723/wd/hub"),caps);
wait = new WebDriverWait(driver, 10);
}
@Test
public void someTest() {
}
@Test
public void anotherTest() {
}
@AfterMethod
public void teardown(){
driver.closeApp();
}
РЕДАКТИРОВАТЬ:
Я предположил, что, возможно, сохранение SharedPreferences через commit()
каким-то образом вмешивается в Appium и меняет его на асинхронный вызов apply()
.Однако это не оказалось решением и привело к тому же результату.