Jenkins 踩坑 (四)|基于接口自动化测试完成 Jenkins+GitHub+Allure 的结合
一、前提
-
关于使用 Jenkins 创建 job 完成自动化测试,核心在于项目的拉取和执行,至于 job 的创建大同小异,需要了解的可以参考文章:[Jenkins之job创建、参数化与定时构建以及时区偏差填坑]
-
另外还需要的就是执行机的环境(以 GitHub 拉取项目为例),需要具体细节操作可自行百度 Google 或参考文章:[Jenkins如何管理、配置、运行node节点,用slave进行分布式运行]
-
需要配置
Java
运行环境(我用的是 jdk1.8) -
需要有
maven
环境 -
需要有
git
环境 -
需要将
git
的公钥加入 GitHub 的SSH key
-
已经存在一个接口自动化测试的项目
下面就仅重点介绍需要注意的点。
二、job 创建
2.1 源码管理
1)新建 job 后,在【源码管理】中选中 Git,Repository URL
中填入 GitHub 中的项目地址:
![](https://static001.geekbang.org/infoq/84/84f2e2f20126f51ddc3f1daffaff811f.png)
![](https://static001.geekbang.org/infoq/ea/ea5f04e84ab5af4a25d1a639a759549b.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
2)在【Credentials】中我们需要 Git 的认证才可以使用 git 去拉取代码,点击【添加】,这里选择的是 SSH 的方式。
![](https://static001.geekbang.org/infoq/2e/2eedfe34797d69a93d11401415b3eb0f.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
【Username】中填写你 Git 的用户名,可以使用git config user.name
命令查看。
【Private Key】中填入你 Git 的私钥,可以使用cd ~/.ssh
进行查找,将id_rsa
中的内容填入即可。
2.2 构建
在构建中我们选择以 shell 的方式执行:
-
. ~/.bash_profile
是为了引入我的环境变量配置 -
cd …ApiTest
是为了进入我设置的项目目录下 -
mvn clean install -Dtest=SearchTest
目的是为了使用maven
制定执行 SearchTest
![](https://static001.geekbang.org/infoq/97/97df10e8b8cf18f8e77c36bdb81dee82.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
踩坑时刻:
这里有一个坑需要注意,如果是用docker
启用的Jenkins
服务,在你创建完 job 直接在 master 上构建后,会报找不到你写的这些 shell 命令的错误,因为你这个服务时跑在容器里的,而这些 shell 命令是需要在容器外执行的,解决方法有两种:
-
重新构建一个带有环境的 Jenkins 变量
-
将 master 创建成一个 slave,在 slave 节点上运行即可
我使用的是第二种方法:
![](https://static001.geekbang.org/infoq/7e/7e6ef331859350bdb56846f81ed41dfe.png)
创建好 slave 后在 job 中设置运行在 master_slave 节点上:
![](https://static001.geekbang.org/infoq/24/24813442b6778236dde39ae040beefb4.png)
2.3 构建结果
执行构建,在控制台输出中查看 log,BUILD SUCCESS
!构建成功,用例执行了 11 个,失败了 3 个。
![](https://static001.geekbang.org/infoq/d5/d57d9d93d21db8f48de2d68e5b59e907.png)
三、Jenkins+Allure
3.1 安装配置
关于 Allure2 报告不是本文的重点,所以在这里就不在赘述了,需要的小伙伴可以自行查阅资料。
1)插件安装,先在 Jenkins 的【插件管理】中搜索安装 Allure 插件,如下:
![](https://static001.geekbang.org/infoq/00/0093aa6f844171fea129c1bbd09b5084.png)
2)回到 job 中,在【构建后的操作】中选择Allure Report
,填入 allure-result 的路径
![](https://static001.geekbang.org/infoq/b2/b2d9f56b8a0d7518af46a1d54d0aa938.png)
踩坑时刻:
这里 Results 的路径要注意填写你实际的存放路径,Jenkins
例子和网上很多文章都直接写了填写target/allure-results
,如果你的路径不对,肯定就找不到数据;比如我这里在前面已经设置了一个项目子目录,所以要填入子目录的路径。
3.2 构建结果
再次执行构建,查看结果:
-
构建完成后我们可以看到已经有了 allure 报告的标识
![](https://static001.geekbang.org/infoq/b1/b1399184c88b1d29ad052580bd19786c.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
-
点击查看,报告完美展示
![](https://static001.geekbang.org/infoq/ba/ba7639716ff8821f6c0d091de330378b.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
以上,欢迎大家一起交流探讨。