Mam sparametryzowany rurociąg, ACCORIndg do wejścia użytkownika, wówczas niektóre wartości są przypisane do zmiennych, jeśli zobaczysz kod, istnieje 2 sekcje echo, jeden po instrukcji przełącznika, a inny w krokach rurociągów w "Przygotowanie" Etap, pierwszy zestaw "ECHOS" wyświetlania prawidłowych wartości Vars, podczas gdy drugi zestaw "ECHOS" z etapami rurociągów nie jest, więc wygląda jak zmienne nie są odbierane w rurociągu, jak mogę Uzyskaj to zrobione?, (w przykładzie poniżej "stres_test" został wybrany).

def local_path
def branch
def script_file
def datagen_file
    switch (TEST_TYPE) {
                        case "Smoke_Test":
                            branch = "SmokeTest"
                            local_path = "/e/jmeter/apache-jmeter-5.3/bin/tcp-performance-engineering/${BRANCH}"
                            script_file = "PE_TCP_RESTAPI_June2020_SMK.jmx"
                            datagen_file= "TCP_JMeter_DataFiles_smk.yaml"
                            break
                        case "Regular_Load":
                            branch = "Regular"
                            local_path = "/e/jmeter/apache-jmeter-5.3/bin/tcp-performance-engineering/${branch}"
                            script_file = "PE_TCP_RESTAPI_July2020_Regular.jmx"
                            datagen_file= "TCP_JMeter_DataFiles_regular.yaml"
                            break
                        case "Peak_Load":
                            branch = "PeakTest"
                            local_path = "/e/jmeter/apache-jmeter-5.3/bin/tcp-performance-engineering/${branch}"
                            script_file = "PE_TCP_RESTAPI_July2020_Peak.jmx"
                            datagen_file= "TCP_JMeter_DataFiles_peak.yaml"
                            break
                        case "Stress_Test":
                            branch = "StressTest"
                            local_path = "/e/jmeter/apache-jmeter-5.3/bin/tcp-performance-engineering/${branch}"
                            script_file = "PE_TCP_RESTAPI_July2020_Stress.jmx"
                            datagen_file= "TCP_JMeter_DataFiles_stress.yaml"
                            break                   
                        default:
                            println "Test type was not set!"
                            break
                    }
    echo "test type selected ${TEST_TYPE}"
                    echo "branch to checkout ${branch}"
                    echo "path in local ${local_path}"
                    echo "script name ${script_file}"
                    echo "datagen file name ${datagen_file}"
    pipeline {
        agent any
            stages {        
                stage('Preparation...') {
                    steps{
                    sh '''
                    echo "test type selected ${TEST_TYPE}"
                    echo "branch to checkout ${branch}"
                    echo "path in local ${local_path}"
                    echo "script name ${script_file}"
                    echo 2datagen file name ${datagen_file}"
                    echo "****************************************"

*rest of the code is not relevant.

I to właśnie wchodzę do wyjścia ...

Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] echo
test type selected Stress_Test
[Pipeline] echo
branch to checkout StressTest
[Pipeline] echo
path in local /e/jmeter/apache-jmeter-5.3/bin/tcp-performance-engineering/StressTest
[Pipeline] echo
script name PE_TCP_RESTAPI_July2020_Stress.jmx
[Pipeline] echo
datagen file name TCP_JMeter_DataFiles_stress.yaml
[Pipeline] node
Running on Jenkins in E:\jenkins\workspace\TCP_Performance_Test_V1
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Preparation...)
[Pipeline] sh
+ echo 'test type selected Stress_Test'
test type selected Stress_Test
+ echo 'branch to checkout '
branch to checkout 
+ echo 'path in local '
path in local 
+ echo 'script name '
script name 

To mój pierwszy rurociąg, wszelka pomoc będzie naprawdę doceniana.

0
Moi Rizo 29 lipiec 2020, 05:08

1 odpowiedź

Najlepsza odpowiedź

Rurociągi Jenkinsa są napisane w Groovy i Groovy, ' służy do dosłownych ciągów, które nie obsługują zmiennej interpolacji. W pytaniu używasz sh ''' ... ''', który sprawia, że wszystko w tym bloku literał i wykonuje jak jest. Znaczenie, wszystkie zmienne są wyglądane w środowisku powłoki, a nie w rurociągu.

Aby naprawić, zmienić sh ''' ... ''' do sh """ ... """ lub wyjąć całkowicie blok sh.

Spójrz na 4. Sznurki sekcja Dokumentacji Groovy.

0
Moon 29 lipiec 2020, 03:48