Поддерживает ли ферма устройств AWS Appium с безмятежным BDD и Gradle? - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу использовать AWS Device Farm для тестирования мобильных приложений, но не вижу никакой поддержки Appium with Serenity BDD & Gradle согласно их документации.

Я видел, что ферма устройств AWS поддерживает следующее

Конфигурация типа теста

Appium JUnit
Appium TestNG
Built-in: Explorer
Built-in: Fuzz
Calabash

Может ли кто-нибудь подтвердить, поддерживает ли ферма устройств Appium with Serenity BDD & Gradle? Я не смог найти этот ответ на их форуме.

Если он поддерживает, могли бы также поделиться некоторыми примерами, пожалуйста?

Спасибо

Vamc

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Из приведенного выше ответа я смог собрать zip-файл без папки зависимостей, поэтому я пытался выяснить, как создать zip-файл с зависимостями, как ожидалось в ферме устройств. Вот способ добавления зависимостей в файл build.gradle, и с указанными выше задачами (Скопировано сверху) мы видим, как в файле zip добавлена ​​папка зависимостей.

    dependencies {    
            runtime group: 'net.serenity-bdd', name: 'serenity-junit', version: '2.0.18'
            runtime group: 'net.serenity-bdd', name: 'serenity-cucumber', version: '1.9.20'
            runtime group: 'net.serenity-bdd', name: 'serenity-reports-configuration', version: '1.9.43'
            runtime group: 'org.assertj', name: 'assertj-core', version: '3.11.1'
            runtime group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
            runtime group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '3.0.0' 
        }

dependencies {

    testCompile(
            'net.serenity-bdd:serenity-junit:2.0.18',
            'net.serenity-bdd:serenity-cucumber:1.9.20',
            'org.assertj:assertj-core:3.11.1',
            'ch.qos.logback:logback-classic:1.2.3',
            'io.github.bonigarcia:webdrivermanager:3.0.0'
    )
}

task getDeps(type: Copy) {
    from sourceSets.main.runtimeClasspath
    into 'build/libs/dependency-jars'
}

//packaging tests task which is generated from sample using gradle init
task packageTests(type: Jar) {
    dependsOn getDeps
    from sourceSets.test.output
    classifier = 'tests'
}

//create zip archive
task zip(type: Zip) {
    dependsOn packageTests
    from 'build/libs/'
    include '*'
    include '*/*' //to include contents of a folder present inside dependency-jars directory
    archiveName 'zip-with-dependencies.zip'
    destinationDir(file('build/libs/'))
}
0 голосов
/ 19 сентября 2018

Я полагаю, что это возможно при использовании опции пользовательских сред при планировании запуска в Device Farm. Правда, у меня нет опыта спокойствия, но вот блог, в котором используются тесты на огурец.

https://aws.amazon.com/blogs/mobile/testing-mobile-apps-with-cucumber-and-appium-through-testng-on-aws-device-farm/

Похоже, что спокойствие похоже или расширено от огурца, так что в теории это может сработать.

[Изменить]

Вот несколько коротких задач сборки, которые должны помочь создать тестовый пакет для Device Farm.

Примечание : предполагается, что зависимости структурированы в файле build.gradle следующим образом:

dependencies {

    testCompile(
            'net.serenity-bdd:serenity-junit:2.0.18',
            'net.serenity-bdd:serenity-cucumber:1.9.20',
            'org.assertj:assertj-core:3.11.1',
            'ch.qos.logback:logback-classic:1.2.3',
            'io.github.bonigarcia:webdrivermanager:3.0.0'
    )
}

образец кода сборки. Код

//source: https://stackoverflow.com/a/27455099/8016330
task getDeps(type: Copy) {
    from sourceSets.test.runtimeClasspath
    // if you need this from the dependencies in the build.gradle then it should be : 
    // from sourceSets.main.runtimeClasspath
    into 'build/libs/dependency-jars'
}

//packaging tests task which is generated from sample using gradle init
task packageTests(type: Jar) {
    dependsOn getDeps
    from sourceSets.test.output
    classifier = 'tests'
}

//create zip archive
//source: https://stackoverflow.com/a/36883221/8016330
task zip(type: Zip) {
    dependsOn packageTests
    from 'build/libs/'
    include '*'
    include '*/*' //to include contents of a folder present inside dependency-jars directory
    archiveName 'zip-with-dependencies.zip'
    destinationDir(file('build/libs/'))
}

Тогда вы сможете создать zip-файл с помощью этой команды:

./gradlew clean zip

Примечание : вам понадобится команда clean, иначе она упакует предыдущий zip-архив в новый zip-архив.

Hth

-Джеймс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...