当前位置: 首页 > news >正文

一文1500字从0到1搭建 Jenkins 自动化测试平台

Jenkins 自动化测试平台的作用
自动化构建平台的执行流程(目标)是:
我们将代码提交到代码托管工具上,如github、gitlab、gitee等。
1、Jenkins要能够检测到我们的提交。
2、Jenkins检测到提交后,要自动拉取代码,运行测试,并进行构建、打包。
3、Jenkins执行完测试和构建后,要向相关人员发送构建结果。
4、Jenkins要能够向我们展示测试运行的分析。

基于以上,我们的工作场景就梳理出来:git和jenkins的环境搭建,jenkins插件安装,jenkins系统配置,jenkins构建项目设置触发器

环境搭建:
1:git安装:
git安装需要在远程服务器上搭建gitGitHub、Gitlab、Gitee等(选一个)搭建仓库,具体操作此处不细说。

2:Jenkins 安装:
下载Jenkins的war包,放在Tomcat的webapps路径下,然后重启Tomcat。

开放相应的端口,然后就可以访问到了。

Jenkins首次启动时,会生成一个管理员账号和密码,一定要记得。

3:Jenkins 插件安装
 Git 、GitLab 、Email Extension 、Allure Jenkins Plugin、Maven Integration plugin

作用分别是,git代码拉取,发送邮件,生成测试报告,构建java项。

4.1:Jenkins配置maven

在系统管理-->全局工具配置中添加maven,如果服务器上已经安装了maven,那么指定MAVEN_HOME。

4.2:下载maven插件

在系统管理-->插件管理中,搜索、安装 Maven Integration plugin 。

 4.3:建立一个maven任务

5:Jenkins 关联代码仓库

在上面建立的maven任务的:配置-->源码管理 中添加代码仓库。

 这里,需要进行认证,点击上图的添加Credentials:

输入用户名、密码即可。

这样,我们就将Jenkins关联到了代码仓库上。Jenkins就能够从该代码仓库上面拉取代码了。

Gitlab 提交触发 Jenkins 自动构建
配置Jenkins触发器

在配置-->构建触发器 中,选中 Build when a change is pushed to GitLab. GitLab webhook URL:***

该URL在配置Gitlab钩子时要用到。

在构建触发器-->高级 中,点击generate,生成一个secret token。

该token也在配置web hook 时要使用。

 配置完成后,点击应用、保存。

配置Gitlab web hook(类似python的钩子函数)
 链接中输入Jenkins触发器那里的url,私密授权码输入secret token。

配置完钩子后,测试一下。返回HTTP 200,就算成功了。

配置Build
上面的配置完成了提交代码的自动下拉,但是怎么构建呢,还需要配置Build:

由于使用的maven来进行构建,所以root pom要使用maven项目的pom文件。

下面的Goals and options是构建时还要执行的指令,我们希望每一次构建都运行一下测试,因此填入test指令。

这和我们在本地执行maven test指令差不多。

生成测试报告
我使用了Allure来生成测试报告。

安装Allure Commandline

我们使用了Allure的项目测试后,会生成一个allure results文件,该文件里面记录了测试信息。

Allure Commandline 的功能,就是解析这些信息,然后生成一个可视化的网页界面。

配置构建后操作

Jenkins 使用maven构建后,要实现测试结果可视化,还要配置Allure来收集测试信息。

添加一个Allure Report的构建后操作即可,Path中填写的是Allure生成的可视化页面的位置。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • DDOS 攻击原理
  • ARM功耗管理之多核处理器启动
  • LLM之RAG实战(四十一)| 使用LLamaIndex和Gemini构建高级搜索引擎
  • 都24年了那些你不知道的AI副业渠道!AI绘画商业案例大揭秘!
  • 77.MySQL的分页查询
  • elementui实现复杂表单的实践
  • 【Linux】vim详解
  • Arcgis Api 三维聚合支持最新版API
  • ARMV8安全特性:Pointer Authentication
  • MongoDB本地配置分片
  • IDEA阿里云OSS实现文件上传·解决苍穹外卖图片回显
  • 华为机考真题 -- 机器人仓库搬砖
  • c++ STL swap用法和实现
  • Spring Cloud Gateway报sun.misc.Unsafe.park(Native Method)
  • 3款自己电脑就可以运行AI LLM的项目
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CSS中外联样式表代表的含义
  • happypack两次报错的问题
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript对象详解
  • JS字符串转数字方法总结
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Spring Boot MyBatis配置多种数据库
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 初识 beanstalkd
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 前端技术周刊 2019-02-11 Serverless
  • 使用API自动生成工具优化前端工作流
  • 使用SAX解析XML
  • 通过npm或yarn自动生成vue组件
  • 交换综合实验一
  • ​​​【收录 Hello 算法】9.4 小结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $$$$GB2312-80区位编码表$$$$
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (bean配置类的注解开发)学习Spring的第十三天
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (接口封装)
  • (十六)视图变换 正交投影 透视投影
  • (四) 虚拟摄像头vivi体验
  • (原)Matlab的svmtrain和svmclassify
  • (转)Mysql的优化设置
  • (转)Windows2003安全设置/维护
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET运行机制
  • @requestBody写与不写的情况
  • @RequestBody与@RequestParam:Spring MVC中的参数接收差异解析
  • [000-01-022].第06节:RabbitMQ中的交换机介绍
  • [AI 大模型] Meta LLaMA-2
  • [Angular] 笔记 6:ngStyle
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作