Вложенная логическая проблема JSON в Jenkinsfile - PullRequest
0 голосов
/ 18 апреля 2020

надеюсь, что у вас все в порядке, у меня вопрос noob.

Я работаю над Дженкинсом, и я пытаюсь получить информацию из файла json, но отображается как логическое (true / false), когда я распечатать сообщение. Я хочу напечатать информацию в виде строки, чтобы проверить информацию и сравнить с другим файлом.

Просто идея: у меня есть несколько флажков, и я хочу выбрать один или два, это изображение флажков и простой gui: Изображение GUI

Json file:

{ "data":[
{"feature":"Basic_Tests",
    "scenario":[
        "Test_1",
        "Test_2",
        "Test_3",
        "Test_4",
        "Test_5"
        ]},
{"feature":"Basic_test2",
    "scenario":[
        "Test_6",
        "Test_7",
        "Test_8"]}]}

Итак, First_option работает (сообщение: «Basic_test»), но, к сожалению, когда я попытка печати Second_option отображается как True, false, false, false , если я выберу «Test_1 »

edit 04/18:

Я добавлю немного кода:

Jenkinsfile:
node {
stage('Server Configuration') {        
  echo "Test"
}

stage('Testing_features') {
        if("${Suite}" == "First_option")
        {
            if("${Select_Option}" == "Single_Feature_Multiple_TestCases")
            {
                echo "${Suite}" //Works shows String
                echo "${Select_Option}" // Works
                echo "${Features}" //Works
                echo "${Test_cases}" //Shows boolean data but info is needed as string
        }
    }
 else
        {
            echo "Select Another Suite"
        }   

    }
  } 

Suite. groovy:

import groovy.json.JsonSlurper
if(Suite.equals("First_option"))
{
def process =["cat","/var/lib/json/features.json"].execute()
def jsonSlurper = new JsonSlurper()
List<String> artifacts = new ArrayList<String>()
def object = jsonSlurper.parseText(process.text)
assert object instanceof Map
for(i=0;i<object.data.size();i++){        artifacts.add(object.data[i].feature)
 }
def x='''
<html>
<head>
</head>
<style> 
body{color:black}
form {background-color: #C5D7DF; 
         }
</style>
<body >
<form>
'''
 if(Select_Option.equals("Single_Feature_Multiple_TestCases")) 
{
x+='''<table>'''  
for(i=0;i<artifacts.size();i++)
{
if(i%3==0)
{
x+='''<tr >'''
}   
 x+="<td><input type='radio' name=\"value\" value="+artifacts[i] +">"+artifacts[i]+"</td>"
} 
 if(i%3==0)
{
x+='''</tr>'''
}
 x+='''</form>
</body>
</html>
'''      
return x
}}

test_cases. groovy:

import groovy.json.JsonSlurper
    if(Suite.equals("First_option"))
    {
    def jsonSlurper = new JsonSlurper()
    List<String> artifacts = new ArrayList<String>()
    def process =["cat","/var/lib/json/features.json"].execute()
    def object = jsonSlurper.parseText(process.text)
    def scen;
    assert object instanceof Map
    def x='''
    <html>
    <head>
    </head>
    <body><form>'''

    if(Select_Option.equals("Single_Feature_Multiple_TestCases"))
    {
    x+='''<table>'''  
    for(i=0;i<object.data.size();i++){
    if((object.data[i].feature).equals(Features))
    {
    for(j=0;j<object.data[i].scenario.size();j++)
    {
        x+="<tr><td><input type='checkbox' name=\"value\" value="+object.data[i].scenario[j]+">"+object.data[i].scenario[j]+"</td></tr>"
    } 
    }
    }
    x+='''</table></form>
    </body>
    </html>
    '''      
    return x
    }
    else
    {
    x+="<input type='radio' name=\"value\" value=\"All Scenario\" checked> All Scenario"
    x+='''
    </form>
    </body>
    </html>
    '''
    return x
    }
    }

Результаты:

[Pipeline] { (Signalling)
[Pipeline] echo
Basic_Tests,
[Pipeline] echo
true,false,false,false,false,
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

Добавление некоторые фотографии "Select_option" и "Suite" on jenkins

Suite

Select_Option

Если я что-то упустил, я скоро добавлю-я sh ...

...