Я использую UiAutomator для измерения разницы во времени между двумя щелчками, но разница во времени между двумя щелчками, которую я получаю, больше, чем фактическая разница во времени, измеренная вручную секундомером.
Вот сценарий: мне нужно сохранить изображение на устройство, где нажатие Start
начнет сохранять изображение на устройстве, пока не появится всплывающее окно OK
с готовым сообщением. Поэтому я измерял этот временной интервал.
Вот мой исходный код:
UiObject start_ok = mDevice.findObject(new UiSelector().text("OK"));
// Staring time measuring.......
starting_time = System.currentTimeMillis();
start_ok.click();
boolean complete_ok = mDevice.wait(Until.hasObject(By.text("OK")), 10000);
if (complete_ok)
{
UiObject finished_ok = mDevice.findObject(new UiSelector().text("OK"));
// Finished time calculating ....
ending_time = System.currentTimeMillis();
finished_ok.click();
}
diff = ending_time - starting_time;
Вышеуказанная разница во времени, которую я получаю, больше, чем когда я делаю вручную. Пожалуйста, предложите мне причину. Также подскажите, как с этим побороться? Как измерить точное время между двумя щелчками?
В инструкции
boolean complete_ok = mDevice.wait(Until.hasObject(By.text("OK")), 10000);
ваше устройство Android будет ждать 10 секунд, а затем нажмите кнопку ОК.
думаю поменять на
UiObject finished_ok = mDevice.findObject(new UiSelector().text("OK"));
while(!finished_ok.exists()){
finished_ok = mDevice.findObject(new UiSelector().text("OK"));
}
ending_time = System.currentTimeMillis();
finished_ok.click();
должно помочь. Здесь вы ждете появления следующей кнопки ОК, а не явного ожидания 10 секунд.
Тем не менее, я получаю разницу во времени, время не точное
UiObject click_finished_ok = mDevice.findObject(new UiSelector().text("OK")); while(!click_finished_ok.exists()) { System.out.print("."); } // Finished time calculating .... ending_time = System.currentTimeMillis(); click_finished_ok.click(); //} diff = ending_time - starting_time;
Кроме того, если это тест белого ящика, такой как тестирование Android для эспрессо, нам не нужно ждать появления кнопки. Следующая инструкция будет выполнена, как только появится кнопка. Но эспрессо не подойдет для другого приложения.