JDI - мобильное тестирование - как запустить тестирование объекта страницы? - PullRequest
0 голосов
/ 27 марта 2019

У меня проблема с использованием jdi и мобильного тестирования. Я пытаюсь создать простой мобильный тест, сопровождаемый документацией и примером проекта из Git.

Проект на Java 11, Ubuntu

Проект состоит из:

Применение:

import com.android.testing.pages.*;
import com.epam.jdi.uitests.mobile.appium.elements.composite.Application;

public class ClockApp extends Application {
    public static AlarmPage alarmPage;
}

Страница:

import com.epam.jdi.uitests.mobile.appium.elements.common.Button;
import com.epam.jdi.uitests.mobile.appium.elements.composite.Section;
import org.openqa.selenium.support.FindBy;

public class AlarmPage extends Section {
    @FindBy(xpath = "//android.widget.ImageView[@content-desc=\"More options\"]")
    public Button dots;
}

TestBase:

import com.epam.jdi.uitests.mobile.testRunner.TestNGBase;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import java.net.URL;
import static com.epam.jdi.uitests.core.settings.JDISettings.driverFactory;
import static com.epam.jdi.uitests.mobile.appium.elements.composite.Application.init;

public abstract class TestBase extends TestNGBase {
private static AppiumDriver<AndroidElement> driver;

@BeforeMethod
public static void setUp() throws Exception {
    init(ClockApp.class);
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setCapability("deviceName", "emulator-5554");
    desiredCapabilities.setCapability("platformVersion", "8.0.0");
    desiredCapabilities.setCapability("appPackage", "com.google.android.deskclock");
    desiredCapabilities.setCapability("appActivity", "com.android.deskclock.DeskClock");
    desiredCapabilities.setCapability("platformName", "android");

    URL remoteUrl = new URL("http://localhost:4723/wd/hub");

    driver = new AndroidDriver(remoteUrl, desiredCapabilities);
}

@AfterMethod
public static void tearDown(){
    driver.quit();
}
}

Тест:

import org.testng.annotations.Test;
import static com.android.testing.ClockApp.alarmPage;

public class SetAlarmTest extends TestBase{
@Test
public void setAlarm(){
    alarmPage.dots.click();
    }
}

Сбой при инициализации TestNG с NullPointerException, в классе JDISettings - метод initFromProperties () - PropertyReader.fillAction (driverFactory :: setRunType, "run.type"), потому что driverFactory имеет значение null. Я что-то пропустил?

...