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

news2025/1/13 2:50:33

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项目

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/662471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四大技巧,教你如何加速手动UI测试

用户界面测试&#xff08;UI测试&#xff09;是软件开发过程中的一个重要组成部分。单元测试和集成测试可以确保代码正常运行&#xff0c;UI测试则帮助您确保用户在使用过程中获得最佳体验。这些测试有一个共同的挑战——创建和维护可能非常耗时&#xff0c;尤其是手动测试。 …

vscode配置远程linux开发环境

vscode配置远程linux开发环境 1. linux 要运行sshd服务2. 在vscode上安装Remote Development插件3. 配置远程linux主机的信息4. 远程连接linux 1. linux 要运行sshd服务 使用命令&#xff0c;查看 22端口是否被监听&#xff0c;这个端口是远程连接软件所用到的端口 netstat -…

mysql8.0版本降到5.7版本(下载配置mysql5.7压缩包版本)

目录 一、前言 二、官网下载与解压 三、配置环境变量 四、检查测试当前MySQL版本 五、获取资源 一、前言 在部署项目的时候&#xff0c;有时候8.0版本的MySQL就会报错&#xff0c;这个时候就要换MySQL的版本了&#xff0c;5.7的版本还是比较稳定的。 二、官网下载与解压…

短视频账号矩阵系统sign解密流程(开发)

PHP加密后直接用这个PHP解码如何解密&#xff1f; IOC 控制反转 把创建对象过程交给spring进行管理&#xff0c;降低耦合度 底层原理 xml解析、工厂模式、反射 过程&#xff1a; 使用xml创建对象 使用xml解析技术解析 通过反射创建对象 Class clazz Class.forName(解析出来…

Unity:Gizmos 菜单

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 Gizmos 菜单 Scene 视图和 Game 视图都有 Gizmos 菜单。 单击 Scene 视图或 Game 视图的工具栏中的 Gizmos 按钮&#xff0c;即可访问 Gizmos 菜单。 “场景”视图中的“辅助图标”…

(提升篇)函数栈帧的创建和销毁

函数栈帧的创建和销毁 1.前言2.预备知识2.1什么是栈帧2.2什么是栈2.2常见的寄存器2.3常见的汇编指令 3.函数栈帧创建和销毁的过程3.1为main函数创建栈空间3.2main函数中创建变量3.3给Add函数传参3.4调用Add函数3.5为Add函数创建栈空间3.6计算3.7把计算好的值返回 1.前言 本章节…

【C/C++数据结构与算法】C语言函数栈帧

目录 一、源代码理论分析 二、主函数的创建 三、c语言代码的汇编 注&#xff1a;不同编译器环境的函数栈帧存在一定差异&#xff0c;本文使用VS2019 一、源代码理论分析 源代码&#xff1a; int Add(int x, int y) {int z 0;z x y;return z; }int main() {int a 10;…

Springboot分布式事务

一、先了解什么是本地事务 1. 概念 本地事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器位于同一节点相同数据库上。 又称为传统事务。它是一个操作序列&#xff0c;这些操作要么都执行&#xff0c;要么都不执行&#xff0c;是一个不可分割的工作单位。例…

【LeetCode】HOT 100(16)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

英特尔发布12Q CMOS量子芯片

光子盒研究院 今天&#xff0c;英特尔公司发布了一种在主流CMOS工艺技术上构建的具有12个量子比特的量子芯片——Tunnel Falls。 Tunnel Falls测试芯片栖息在指尖上 Tunnel Falls量子芯片由12个量子点&#xff08;或单电子晶体管&#xff09;构建&#xff0c;可配置4至12个基于…

嵌入式 QT usb camera库驱动摄像头

目录 前言 ​编辑 1. 交叉编译 ffmpeg 1.1 先拿到ffmpeg的压缩包 1.2 把ffmpeg源码复制到虚拟机&#xff0c;并解压压缩包 1.3 解压之后我们要进入到解压文件中进行编译成库 1.5 make 1.6 make install 2.usbcame库使用 2.1 获取usbcame库并解压 2.2 解压完成后我们…

zabbix-3-agent安装

1.CentOS release 5 1-1.centos5 32位 [rootLV zabbix]# cat /etc/redhat-release CentOS release 5 (Final) [rootLV zabbix]# uname -a Linux LV 2.6.18-53.el5xen #1 SMP Mon Nov 12 03:26:12 EST 2007 i686 i686 i386 GNU/Linux确定了系统centos5 32位rpm方式安装&#…

【深度学习】3-1 神经网络的学习- 学习基础/损失函数

学习基础 神经网络的学习。这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。 神经网络的特征就是可以从数据中学习。所谓“从数据中学习”&#xff0c;是指可以由数据自动决定权重参数的值。 数据驱动 数据是机器学习的命根子。从数据中寻找答案、从数据中发…

接口测试框架之APIAutoTest框架

目录 前言 框架简介 框架介绍 框架技术栈图 框架组件图 框架执行流程图 测试用例设计 测试报告 结语 前言 APIAutoTest框架是一款基于Python语言和unittest框架的API自动化测试框架。它可以帮助测试人员快速搭建API测试环境&#xff0c;并通过代码自动化实现API的测试…

每年降本100万元+!企业研发管理可以这样做....

随着市场的定制化需求越来越多&#xff0c;非标设计越来越多&#xff1b;订单交付周期要求短&#xff0c;导致设计人员的设计周期进一步压缩&#xff0c;设计准确率的重要性进一步提升&#xff0c;这些都对企业研发管理提出了更严峻的挑战。 本期干货内容分享 装备制造企业研发…

计算机网络基础学习指南

前言 计算机网络基础是研发/运维工程师都需掌握的知识&#xff0c;但往往会被忽略。 今天&#xff0c;我将对计算机网络基础学习进行详细阐述&#xff0c;涵盖 TCP / UDP协议、Http协议、Socket等&#xff0c;希望你们会喜欢。 1、计算机网络体系结构 1.1 简介 定义 计算机…

Linux基础学习之目录结构、ls命令

1、win系统可能有多个盘&#xff0c;那么就会对应多个文件树&#xff0c;但是Linux系统只有一个文件树&#xff0c;对应的也只有一个根目录&#xff0c;叫做 / 。 2、win与Linux表示层级关系的斜杠的方向不同&#xff0c;一个是斜杠&#xff0c;一个是反斜杠&#xff0c;Linux…

Three.js3D可视化介绍,以及本地搭建three.js官网

一、什么是Three.js three.js官网&#xff1a;https://threejs.org/ Three.js是一个基于WebGL的JavaScript 3D图形库&#xff0c;它可以轻松地在浏览器中创建3D场景和动画。同时&#xff0c;它支持外部模型和纹理的导入&#xff0c;让开发者可以更加便捷地创建出震撼的3D场景…

详细的聊一聊如何使用响应式图片,提升网页加载速度

开篇 确保图片在所有屏幕尺寸上都能良好显示是一项困难的任务&#xff0c;因为你需要考虑图片的大小、图片的放置位置、显示图片的比例、用户连接的速度等等众多因素。结果是&#xff0c;大多数开发者只会为所有屏幕尺寸使用同一张图片&#xff0c;并让浏览器调整图片的大小以适…

【SCI征稿】仅1个月22天录用,极速录用见刊,可接受智能交通,自动驾驶汽车,新型智能算法,智能交通系统,安全运输,交通拥堵等领域

智能算法类SCIE&EI ◆ 影响因子&#xff1a;4.0-5.0 ◆ 期刊分区&#xff1a;JCR2区&#xff0c;中科院3区 ◆ 检索情况&#xff1a;SCIE&EI 双检&#xff0c;正刊 ◆ 征稿领域&#xff1a;智能算法在智能交通中的应用&#xff0c;包括自动驾驶汽车、新型智能算法、…