自动发货 html代码_Jenkins Pipeline script语法自动化测试模板及效果

eba9a914dc5eabfd26ed06dc214ca230.png

首先我们先看下什么是Pipeline,pipeline作为jenkins 2.X的核心理念,是devops落地最佳实践。

什么是Jenkins的流水线?

Jenkins 流水线 (或简单的带有大写"P"的"Pipeline") 是一套插件,它支持实现和集成 continuous delivery pipelines 到Jenkins。

_continuous delivery (CD) pipeline_是你的进程的自动表达,用于从版本控制向用户和客户获取软件。你的软件的每次的变更 (在源代码控制中提交)在它被释放的路上都经历了一个复杂的过程 on its way to being released. 这个过程包括以一种可靠并可重复的方式构建软件, 以及通过多个测试和部署阶段来开发构建好的软件 (c成为 "build") 。

流水线提供了一组可扩展的工具,通过 Pipeline domain-specific language (DSL) syntax. [1]对从简单到复杂的交付流水线 "作为代码" 进行建模。

对Jenkins 流水线的定义被写在一个文本文件中 (成为 Jenkinsfile),该文件可以被提交到项目的源代码的控制仓库。 [2] 这是"流水线即代码"的基础; 将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。创建 `Jenkinsfile`并提交它到源代码控制中提供了一些即时的好处:

  • 自动地为所有分支创建流水线构建过程并拉取请求。

  • 在流水线上代码复查/迭代 (以及剩余的源代码)。

  • 对流水线进行审计跟踪。

  • 该流水线的真正的源代码 [3], 可以被项目的多个成员查看和编辑。

看下笔者在企业实践中,针对自动化测试所定义的pipeline模板及效果,如下所示:

pipeline模板,注意:笔者的pipeline是基于script语法的

// 定义测试场景脚本路径变量

def testfile="./xxxxx/test_xxxx_search.py"

node {

    // 初始化运行环境

    stage("Init Env"){

        env.PATH = "${env.VIRTUAL_ENV}:${env.PATH}"

    }

    // 从git拉取代码stage

    stage('check out') {

        checkout scm

    }

    // 启动测试stage

    stage('Test') {

        // 激活python 虚拟环境

        sh ". activate"

       // pytest运行测试场景,并生成html报告

        sh "pytest ${testfile} --html=./logs/report.html --self-contained-html"

    }

    // 发布html报告

    stage('Report') {           

            publishHTML (target: [

                allowMissing: false,

                alwaysLinkToLastBuild: false,

                keepAll: true,

                reportDir: 'logs',

                reportFiles: 'report.html',

                reportName: "HTML Report"

            ])

    }

    // 如果没成功,则往测试群发送钉钉通知

    stage('Notify'){

        script{

            if( currentBuild.currentResult == "SUCCESS"){

                // build success               

            }

            else{

                // build failure or abort send dingTalk               

            }

        }

    }

}

看下在jenkins上跑出来的效果:

d3c19ddeb7a5f54edb55c99751329519.png几点说明:

1. 上图中 InitEnv、checkout、Test、Report、Notify对应前面pipeline模板代码各个stage

2. InitEnv Stage用于初始化测试环境

3. checkout 用于从git拉取测试代码到本地环境

4. Test 用于执行测试代码

5. Report用于发布测试结果到jenkins(参见下图)

88ad7ffb720d29cadc90e6ca566805ce.png

6. Notify 用于根据测试结果,发布通知给用户(可以是钉钉通知、email通知、qq通知等),笔者钉钉通知如下所示

9df5e29cd3000b08544e7f5138f5360f.png

更多的交流,可以加群一起探讨

透过上面的信息,大家可以留言看看我在企业实践中用了哪些编程语言、框架、工具等

扫一扫加我微信,注明:入群,加入微信群

cdcd6f4c136cd5eba5e598626c49399c.png

扫一扫关注开源优测公众号,原创文章首发平台

4efb0ab87543f9623dfab3415dd61832.png

在公众号里回复一下关键字获取对应的系列文章

物联网appium大数据测试RobotFrameworkPython
自动驾驶jmeterseleniumjenkins接口测试

顺手点点点右下角的06196f7417a24b856ba4b39a293e6d48.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值