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

Jenkins 踩坑(四)|基于接口自动化测试完成

1.关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以参考文章:[Jenkins之job创建、参数化与定时构建以及时区偏差填坑]

2.另外还需要的就是执行机的环境(以GitHub拉取项目为例),需要具体细节操作可自行百度Google或参考文章:[Jenkins如何管理、配置、运行node节点,用slave进行分布式运行]

- 需要配置Java运行环境(我用的是jdk1.8)

- 需要有maven环境

- 需要有git环境

- 需要将git的公钥加入GitHub的SSH key

3.已经存在一个接口自动化测试的项目

下面就仅重点介绍需要注意的点。

1)新建job后,在【源码管理】中选中Git,Repository URL中填入GitHub中的项目地址:

2)在【Credentials】中我们需要Git的认证才可以使用git去拉取代码,点击【添加】,这里选择的是SSH的方式。

【Username】中填写你Git的用户名,可以使用git config user.name命令查看。

【Private Key】中填入你Git的私钥,可以使用cd ~/.ssh进行查找,将id_rsa中的内容填入即可。

在构建中我们选择以shell的方式执行:

- . ~/.bash_profile是为了引入我的环境变量配置

- cd …ApiTest是为了进入我设置的项目目录下

- mvn clean install -Dtest=SearchTest目的是为了使用maven制定执行SearchTest

踩坑时刻:

这里有一个坑需要注意,如果是用docker启用的Jenkins服务,在你创建完job直接在master上构建后,会报找不到你写的这些shell命令的错误,因为你这个服务时跑在容器里的,而这些shell命令是需要在容器外执行的,解决方法有两种:

4.重新构建一个带有环境的Jenkins变量

5.将master创建成一个slave,在slave节点上运行即可

我使用的是第二种方法:

创建好slave后在job中设置运行在master_slave节点上:

执行构建,在控制台输出中查看log,BUILD SUCCESS!构建成功,用例执行了11个,失败了3个。

1)插件安装,先在Jenkins的【插件管理】中搜索安装Allure插件,如下:

2)回到job中,在【构建后的操作】中选择Allure Report,填入allure-result的路径

踩坑时刻:

这里Results的路径要注意填写你实际的存放路径,Jenkins例子和网上很多文章都直接写了填写target/allure-results,如果你的路径不对,肯定就找不到数据;比如我这里在前面已经设置了一个项目子目录,所以要填入子目录的路径。

再次执行构建,查看结果:

- 构建完成后我们可以看到已经有了allure报告的标识

- 点击查看,报告完美展示

以上,欢迎大家一起交流探讨。

免费领取:性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档


相关文章:

  • package.json配置
  • [折腾]使用SSH服务实现一个socks5代理服务器
  • java计算机毕业设计我的大学电子相册源码+系统+数据库+lw文档+mybatis+运行部署
  • 中小型企业应如何选择OA管理系统
  • Kubernetes学习记录之(jenkins slave安装配置)
  • java计算机毕业设计文学阅读平台源码+系统+数据库+lw文档+mybatis+运行部署
  • windows下安装docker
  • 3D格式转换神器HOOPS Exchange使用教程(一):打印组件结构
  • 2021-05-13 Redis面试题 Redis key的过期时间和永久有效分别怎么设置?
  • NGINX源码之:event与epoll
  • 【Python】第十课 魔法方法
  • 有趣的前端项目——一个暴躁萌的大眼仔
  • Docker CentOS8 编译安装 nagios
  • MindSpore实践:神经网络与贝叶斯神经网络
  • mybatis级联查询
  • 【Amaple教程】5. 插件
  • 【Linux系统编程】快速查找errno错误码信息
  • 230. Kth Smallest Element in a BST
  • iOS编译提示和导航提示
  • Mac转Windows的拯救指南
  • MySQL的数据类型
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 动态规划入门(以爬楼梯为例)
  • - 概述 - 《设计模式(极简c++版)》
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 那些年我们用过的显示性能指标
  • 浅谈Golang中select的用法
  • 手写一个CommonJS打包工具(一)
  • 思考 CSS 架构
  • 王永庆:技术创新改变教育未来
  • 小程序测试方案初探
  • 做一名精致的JavaScripter 01:JavaScript简介
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • raise 与 raise ... from 的区别
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #{} 和 ${}区别
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)Nginx简介和安装教程
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (万字长文)Spring的核心知识尽揽其中
  • (五)Python 垃圾回收机制
  • (转)jQuery 基础
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET下ASPX编程的几个小问题
  • @Autowired标签与 @Resource标签 的区别
  • @GetMapping和@RequestMapping的区别
  • @ModelAttribute使用详解