Jenkins Pipeline предоставляет пользовательский ввод для запуска конкретного testng.xml - PullRequest
0 голосов
/ 08 ноября 2019

Я использую Gradle with Selen (Java) Testng для автоматизации моих тестовых случаев и выбираю Jenkins для создания сценариев.

У меня много testng.xml файлов в моей рабочей области в папке src / test / resources -> ACE_Regression (пакет)

Мой build.gradle выглядит следующим образом

buildscript 
{

ext

 {

testNgVersion = "6.14.3"

    }
}

apply plugin: 'java-library'

repositories {

    jcenter()

     mavenCentral()

}

dependencies {

    api 'org.apache.commons:commons-math3:3.6.1'

    implementation 'com.google.guava:guava:27.0.1-jre'

    implementation 'com.google.guava:guava:27.0.1-jre'

    testImplementation 'junit:junit:4.12'

    implementation "org.testng:testng:$testNgVersion"

    compile group: 'org.freemarker', name: 'freemarker', version: '2.3.23'

    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.14.0'

    compile group: 'com.aventstack', name: 'extentreports', version: '3.0.6'

    compile group: 'com.relevantcodes', name: 'extentreports', version: '2.41.2'

    compile group: 'org.apache.poi', name: 'poi', version: '4.0.0'

    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.0.0'

    compile group: 'commons-io', name: 'commons-io', version: '2.4'

    compile group: 'ru.yandex.qatools.ashot', name: 'ashot', version: '1.5.2'

    testCompile group: 'io.rest-assured', name: 'rest-assured', version: '3.0.0'

    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'

  compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.12.1'

  compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.1'  

}



test {

useTestNG() 

{

suites "src/test/resources/ACE_Regression/Acelogin.xml"

suites "src/test/resources/ACE_Regression/CLAs.xml"

    }
}

Сейчас я использую " gradlew test " для запуска моих тестов от Дженкинса.

Я хочу дать входные данные от jenkins для запуска только файла CLAs.xml. Как это у меня есть много доступных файлов XML. Я хочу параметризовать задание, чтобы выбрать только требуемые тестовые файлы и запустить.

Может кто-нибудь помочь мне настроить это тестовое задание в файле build.gradle и jenkins

Заранее спасибо

1 Ответ

0 голосов
/ 08 ноября 2019

Измените useTestNG () в вашем build.grade . Он должен принимать один динамический параметр, например, xmlName.

test {

    useTestNG() 
        {
           suites "src/test/resources/ACE_Regression/${xmlName}.xml"
        }
    }

Передайте xmlName, используя опцию -P в блоке вызовов gradle. то есть gradlew test -PxmlName=CLAs, это должно работать.

Чтобы сделать его более динамичным, Сделайте ваш jenkins build параметризованным . Создайте параметр выбора с именем testSuites и добавьте в него все возможные имена файлов XML. Затем передайте этот параметр выбора в командный блок вызова gradle, т.е. gradle test -PxmlName=${testSuites}

...