1-测试 - Jenkins构建接口自动化脚本
about
centos7.4 + jenkins 2.263.1 + pytest + allure + github + Python3.6.8
本篇演示如何使用Jenkins来集成一个接口自动化脚本。
接口自动化脚本的GitHub地址:https://github.com/WZSwang/ATScripts.git
开始吧!
必要的环境配置
- Java环境
[root@cs ~]# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
[root@cs ~]# ls /usr/lib/jvm/java-openjdk/ # 记住这个Java home 后续会用到
ASSEMBLY_EXCEPTION bin include jre lib LICENSE tapset THIRD_PARTY_README
- git:
[root@cs ~]# yum install git -y
[root@cs ~]# git --version
git version 1.8.3.1
[root@cs ~]# ls /usr/bin/git # 记住这个路径, 后续也会用到
/usr/bin/git
- Jenkins安装,参考:rpm安装的Jenkins
Jenkins必要的配置
在正式构建一个freestyle的项目之前,还需要一些基本的配置和插件的安装。
Allure Commandline安装
参考:https://www.cnblogs.com/Neeo/articles/12767089.html#for-centos
Python环境配置
因为要跑的是Python的脚本,所以系统中还必须提前安装好了Python环境。
参考:https://www.cnblogs.com/Neeo/articles/12829625.html#centos-7
注意,记得要配置软链接,不然会出问题!
必要的插件下载
Manage Jenkins
>Manage Plugins
>Available
,分别将allure
和Email Extension Plugin
这两个插件下载好。
这两个插件用来生成allure报告和发送邮件。
配置Java/git/Allure Commandline
Manage Jenkins
>Global Tool Configuration
下拉分别配置JDK
、Git
、Allure Commandline
,最后配置完,别忘了点击Apply
后Save
!
Jenkins在构建时,会使用这些。
配置凭据
因为我们的接口自动化脚本托管在GitHub上,Jenkins在构建脚本时,会自动地去GitHub上拉取代码,这个过程中,需要凭据才能完成。
Manage Jenkins
>Manage Credentials
>Global credentials (unrestricted)
基本上,基础配置就先配置到这里。
测试各环境是否好使
注意,Jenkins默认情况下执行shell脚本是使用非登录方式,然而非登录方式不会加载/etc/profile
文件,所以,有些程序虽然配置好了/etc/profile
,但依然不能正常的调用,这时候就要考虑配置软链了。
构建一个freestyle的项目。来检验配置的环境是否好使。
关于项目的配置部分,常用的操作:
general
,配置项目的描述信息,配置一些构建中的参数等等操作。Source Code Management
,源码管理,从哪拉取代码,配置凭据等。Build Triggers
,构建触发器,你的项目如何运行?- 执行一次?
- 轮询执行?每天?每周?每月?参照Linux的定时任务配置。
Build Environment
,构建环境,选择项目的构建环境,如ant。Build
,构建,如何执行项目?shell命令?Windows终端命令?Post-build Actions
,构建后的操作,当项目完毕后,要做什么?生成相关报告?发送邮件?
这里我们先对配置环境进行检测,所以,直接选择Build
选项,由于是在Linux环境下构建项目,所以,选择执行shell。
在项目视图下,点击Build Now
:
现在,可以正式开搞了!
关于接口自动化脚本的配置
通过之前的配置和测试,确定了环境没有问题,现在可以针对接口自动化脚本进行配置了。
还是AT
项目,在项目视图下,选择Configure
进行配置。
General
因为这个接口自动化脚本执行完毕要生成allure报告,这里要选择参数构建过程。
在General
部分我们提前配置好用到参数。
Source Code Management
在源码管理中,配置以git的形式拉取代码。
Build Triggers
略过
Build Environment
略过
Build
其中:
-v
表示输出详细的执行信息。--alluredir $ALLURE_RESULTS
表示在pytest执行完毕后,将allure需要的json文件生成到$ALLURE_RESULTS
指向的目录内。
Post-build Actions
构建完成后,配置
现在,就可以保存尝试构建一波了!
构建
项目视图下,选择Build with Parameters
,进行构建,然后查看控制台输出。
配置邮件
参考:https://www.cnblogs.com/Neeo/articles/12805815.html
当你整体配置完毕后,然后根据控制台输出,排查一些错误,就得到了这样一个allure报告:
感觉也还行,其他的数据也都有了。但是还有一些小瑕疵。我们往下看。
问题和优化
现在如果你的allure报告的Overview页面,缺少环境信息等,你可能需要做些别的操作。
配置环境信息
如下图,缺少一些环境信息。
想要添加一些环境信息,只需要在你的allure-results
目录下创建environment.properties
或者environment.xml
文件,将环境信息写道文件中。
environment.properties
:
Browser=Chrome
Browser.Version=63.0
Stand=Production
environment.xml
:
<environment>
<parameter>
<key>Browser</key>
<value>Chrome</value>
</parameter>
<parameter>
<key>Browser.Version</key>
<value>63.0</value>
</parameter>
<parameter>
<key>Stand</key>
<value>Production</value>
</parameter>
</environment>
然后重新构建项目就可以了。
现在,就有了:
参考:https://docs.qameta.io/allure/#_environment
当然,你也可以在构建过程中,使用命令来完成。
项目配置中的Build
中:
#!/bin/bash
# 下载依赖模块
pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt
# 使用pytest执行脚本
python3 -m pytest -v --alluredir $ALLURE_RESULTS
# 就下面两行,将依赖库导出到environment.properties中,然后稍作替换就好了
pip3 freeze > $ALLURE_RESULTS/environment.properties
sed -i 's/==/=/g' $ALLURE_RESULTS/environment.properties
欢迎斧正,that's all,see also:
Jenkins - 构建Allure Report | 配置Jenkins邮件通知 | Jenkins+Pytest+Allure 集成测试环境 | jenkins配置邮件及增强版邮件通知 | jenkins 构建脚本标记为failure | (三)jenkins·统一配置 JDK、Maven、Git 等安装位置