jenkins下载gitlab自动化用例并每日批跑

1.安装Jenkins

---待补充

2.安装用例执行节点(虚拟机)

用例执行的虚拟机,需要安装python环境与依赖包(自动化脚本依赖包),需要申请外网权限(安装python依赖需要外网)。执行机需要挂靠到jenkins的某节点上

3.window虚机,报告存放地址

安装tamcat服务,Jenkins生成的报告会通过pipeline脚本上传到此windows上存放,然后外网可以通过访问tamcat的地址去访问对应的报告

4.Jenkins构建项目

首先需要新建节点(执行节点),用于pipeline执行绑定的机器

其次要新建credit id,用于Jenkins和gitlab认证,达到下载项目代码的目的

最后可以开始构建项目:

1. 配置一个Jenkins自动化项目流程

Jenkins项目地址  上【New Item】个Pipline脚本项目,参照之前项目配置,主要填写pipline_script(具体运行步骤) pipline_script: 

 具体内容:

timeout(time: 4, unit: 'HOURS'){   
    node('APIautoTest'){
        def project = 'GKP1.5'
        def name = '知识智能平台V1.5'
        def exec_file = 'suite_by_dir_allRelease'
        def exec_env = ""
        def mail_to = 'zhangsan@qq.com'
        def ftp_address = '10.202.62.98'
        def ftp_port = '21'
        def ftp_tomcat_port = '8080'
        
       environment {
            LC_ALL = 'en_US.UTF-8'
            LANG    = 'en_US.UTF-8'
            LANGUAGE = 'en_US.UTF-8'
            PYTHONIOENCODING = "en_US.UTF-8"
        }
       stage("check out"){
            retry(3){
                git  credentialsId: '9801fa28-e345-47ee-86da-6738ed044013', url: 'git@gitlab.gridsum.com:research/datascience-testing-engineers/GKP-API-automation.git',branch:"GKP_V1.5_server"
            }
        }
        stage("prepare"){
            '''
			sh "pip install urllib3==1.26.5"
			sh "pip install null"
				
				pip install null
                pip install pyyaml
                pip install mako
                pip install psycopg2-binary
                pip install ddt
                pip install py2neo
                '''
        }
        stage("test"){
    		sh "cd test_suite \n LC_CTYPE=zh_CN.UTF-8  python3 ${exec_file}.py -c jenkins"
        }
        stage("post"){
            allure includeProperties: false, jdk: '', report: "report/jenkins-html", results: [[path: "report/xml"]] 
        }
        stage("upload to ftp"){
            params = "-a ${ftp_address}:${ftp_port} -p ${project} -n ${BUILD_NUMBER}"
            if ("${exec_env}" != ""){  
                params = params + " -e ${exec_env}"
            }
            sh "cd common \n LC_CTYPE=zh_CN.UTF-8  python3 CommonFtp.py ${params}"
        }
        stage("send email"){
            dataObject = readJSON file: "report/jenkins-html/widgets/summary.json"
            failed = "${dataObject.statistic.failed}"
            broken = "${dataObject.statistic.broken}"
            skipped = "${dataObject.statistic.skipped}"
            passed = "${dataObject.statistic.passed}"
            total = "${dataObject.statistic.total}"
            if (total == '0'){
                status = "没有用例运行"
            }
            else if (total == passed){
                status = "运行成功"
            }
            else{
                status = "运行出错"
            }
            
            if ("exec_env" != ""){
                report_address = "http://${ftp_address}:${ftp_tomcat_port}/${project}/${exec_env}/${env.BUILD_NUMBER}/index.html"
            }
            else{
                report_address = "http://${ftp_address}:${ftp_tomcat_port}/${project}/${env.BUILD_NUMBER}/index.html"
            }
            
            
            emailext body: """
            <p>构建地址:<A HREF="${env.BUILD_URL}">${env.BUILD_URL} (需要先登录jenkins且有项目权限)</A></p>
             <p>构建日志地址:<A HREF="${env.BUILD_URL}console">${env.BUILD_URL}console (需要先登录jenkins且有项目权限)</A></p>
             <p>测试报告:<A HREF=${report_address}>${report_address}</A></p>
             <p>概要结果:
                <ul><li>总用例数:${total}</li></ul>
                <ul><li>成功数:${passed}</li></ul>
                <ul><li>失败数:${failed}</li></ul>
                <ul><li>错误数:${broken}</li></ul>
                <ul><li>跳过数:${skipped}</li></ul>
            </p>
            """, 
            subject: "【${name}】高频用例测试报告 - ${env.BUILD_NUMBER} -${status}",
            to: "${mail_to}"
        }      
    }
}

2. 将 Pipline项目挂着定时控制器上 Jenkins定时器

3. 调试Pipline项目

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值