четверг, 1 октября 2015 г.

Appium in Action

Установка Appium и тестирование мобильных приложений.


Всем привет,чтобы не забыть пишу для себя короткий мануальчик,как поставить и использовать appium быстро.

Ставим NodeJs,способов куча,так что это просто.

После чего надо поставить все остальное
Запустите следующую команду в окне терминала :
Шаг 1 : Затем в окне терминала выполнить следующие команды:
npm install -g grunt-cli
Шаг 2 : Затем в окне терминала выполнить следующие команды:
npm install -g appium
Шаг 3 : Затем в окне терминала выполнить следующие команды:
npm install wd
Шаг 4 : Затем в окне терминала выполнить следующие команды для запуска сервера Appium :
appium &

Есть вероятность,что пакеты не ставятся на unix системах без sudo,а ставить с ним нам нельзя((
тогда делаем так 

 
$sudo npm uninstall -g appium 
$sudo chmod -R a+w /usr/local 
$npm install -g appium

И нужно обязательно добавить путь к вашему Andoid SDK

 
export ANDROID_HOME=pathtosdk

Теперь в вашем проекте с тестами,добавляем в maven зависимости следующее


 
  
            io.appium
            java-client
            version
        

Ну и примерный запуск самого простого теста как то так :


 
public class TestAndroid {

    private AppiumDriver driver;
    private static AppiumDriverLocalService service;

    @BeforeClass
    public static void beforeClass() throws Exception{
        service = AppiumDriverLocalService.buildDefaultService();
        service.start();
    }

    @Before
    public void setUp() throws Exception {
        if (service == null || !service.isRunning())
            throw new RuntimeException("An appium server node is not started!");

        File appDir = new File("pathToapk");
        File app = new File(appDir, "app-debug.apk");
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
        capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
        driver = new AndroidDriver(service.getUrl(), capabilities);
    }

    @After
    public void tearDown() throws Exception {
        driver.quit();
    }

    @Test
    public void findElementsTest() {
        List elements = driver.findElementsById("button");
        assertTrue(elements.size() > 0);
    }

}

Вот и все,всем спасибо.