一般是:操作->预期结果,断言应该是在每一步操作之后。
对于场景准备类的操作可以仅做一些简单断言,比如 api 请求仅判断状态码,和一些关键业务数据
同意你的思路,按照业务行为封装方法,通过传入不同的数据完成不同的操作。怎么合理的封装行为也不是简单的事情
测试点 1、2、3 是互斥的还是依赖的?如果是互斥的就不能放在一条 case 当中。如果是依赖的也有必要对大 case 进行拆分分层,当然放一起也是可以的。
帖子没有写的很详细,有什么疑问,欢迎交流
模板语`${vars}`
active choice 文档中有提到两个变量jenkinsProject,jenkinsBuild,大家一起看下怎么在 script 脚本中使用?我现在的需求是希望可以取到 jenkins 管理的 credentials 帐号密码,当前还没有找到方法。
jenkinsProject -> The Jenkins Project objectjenkinsBuild -> The Jenkins Build object
附上我找到的一些使用方法
 properties([
                parameters([
                        [$class: 'ChoiceParameter',
                         choiceType: 'PT_SINGLE_SELECT',
                         description: 'Select the Env Name from the Dropdown List',
                         filterLength: 1,
                         filterable: false,
                         name: 'Env',
                         randomName: 'choice-parameter-5631314439613978',
                         script: [
                                 $class: 'GroovyScript',
                                 fallbackScript: [
                                         classpath: [],
                                         sandbox: false,
                                         script:
                                                 'return[\'Could not get Env\']'
                                 ],
                                 script: [
                                         classpath: [],
                                         sandbox: false,
                                         script:
                                                 'return["Dev","QA","Stage","Prod"]'
                                 ]
                         ]
                        ],
                        [$class              : 'DynamicReferenceParameter',
                         choiceType          : 'ET_FORMATTED_HTML',
                         omitValueField      : true,
                         description         : 'Please provide a Elastic alias label',
                         name                : 'PC_CPU',
                         randomName          : 'choice-parameter-5631314456178624',
                         referencedParameters: 'NeedUpgradePC',
                         script              : [
                                 $class        : 'GroovyScript',
                                 fallbackScript: [
                                         classpath: [],
                                         sandbox  : true,
                                         script   :
                                                 'return[\'nothing.....\']'
                                 ],
                                 script        : [
                                         classpath: [],
                                         sandbox  : true,
                                         script   :
                                                 """
                                        inputBox="<input name='value' type='text' value='Intel Core i5'>"
                                """
                                 ]
                         ]
                        ],
                        [$class: 'CascadeChoiceParameter',
                         choiceType: 'PT_CHECKBOX',
                         description: 'Select Servers',
                         filterLength: 1,
                         filterable: true,
                         name: 'Server',
                         randomName: 'choice-parameter-5631314456178619',
                         referencedParameters: 'Env',
                         script: [
                                 $class: 'GroovyScript',
                                 fallbackScript: [
                                         classpath: [],
                                         sandbox: false,
                                         script:
                                                 'return[\'Could not get Environment from Env Param\']'
                                 ],
                                 script: [
                                         classpath: [],
                                         sandbox: false,
                                         script:
                                                 ''' if (Env.equals("Dev")){
                            return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]
                        }
                        else if(Env.equals("QA")){
                            return["qaaaa001","qabbb002","qaccc003"]
                        }
                        else if(Env.equals("Stage")){
                            return["staaa001","stbbb002","stccc003"]
                        }
                        else if(Env.equals("Prod")){
                            return["praaa001","prbbb002","prccc003"]
                        }
                    '''
                                 ]
                         ]
                        ]
                ])
//parameters([
//        choice(name: "NeedUpgradePC", choices: ['yes', 'no'], description: "Do you need upgrade your PC"),
//        [$class              : 'DynamicReferenceParameter',
//         choiceType          : 'ET_FORMATTED_HIDDEN_HTML',
//         omitValueField      : true,
//         description         : 'Please provide a Elastic alias label',
//         name                : 'PC_RAM',
//         randomName          : 'choice-parameter-5631314456178624',
//         referencedParameters: 'NeedUpgradePC',
//         script              : [
//                 $class        : 'GroovyScript',
//                 fallbackScript: [
//                         classpath: [],
//                         sandbox  : true,
//                         script   :
//                                 'return[\'nothing.....\']'
//                 ],
//                 script        : [
//                         classpath: [],
//                         sandbox  : true,
//                         script   :
//                                 """
//                                    if(NeedUpgradePC.equals('yes')) {
//                                        inputBox="<input name='value' type='text' value='Kingston 8GB'>"
//                                    } else {
//                                        inputBox="<input name='value' type='text' value='Kingston 8GB' disabled>"
//                                    }
//                                """
//                 ]
//         ]
//        ],
//        [$class              : 'DynamicReferenceParameter',
//         choiceType          : 'ET_FORMATTED_HTML',
//         omitValueField      : true,
//         description         : 'Please provide a Elastic alias label',
//         name                : 'PC_CPU',
//         randomName          : 'choice-parameter-5631314456178624',
//         referencedParameters: 'NeedUpgradePC',
//         script              : [
//                 $class        : 'GroovyScript',
//                 fallbackScript: [
//                         classpath: [],
//                         sandbox  : true,
//                         script   :
//                                 'return[\'nothing.....\']'
//                 ],
//                 script        : [
//                         classpath: [],
//                         sandbox  : true,
//                         script   :
//                                 """
//                                    if(NeedUpgradePC.equals('yes')) {
//                                        inputBox="<input name='value' type='text' value='Intel Core i5'>"
//                                    } else {
//                                        inputBox="<input name='value' type='text' value='Intel Core i5' disabled>"
//                                    }
//                                """
//                 ]
//         ]
//        ]
//
//])
        ])
赞!目前已经开源了吗
调用入口是:
def call(){
}
w3c 的 pipline 是 google 翻译的吧。看了下确实惨不忍睹
两种 pipeline 分别对应创建 pipeline 的两种形式,语法还是有区别的
你那个帖子已经描述的相当明确了,一种是 userInput,中断式的。两一种是参数化构建,开始构建时选择参数。