Linux+Jenkins+httprunner+allure生成测试报告

jdk安装和配置环境变量

  • jdk下载

官网地址:https://www.oracle.com/cn/java/technologies/javase-downloads.html,下载对应的Linux安装包。

image.png
image.png
  • Linux配置jdk环境
  • Linux新增jdk安装目录(目录可自定义)
mkdir /usr/local/soft
cd /usr/local/soft

通过ftp把安装包上传到该文件夹
ps: rm -rf xxx 强制删除目录或者文件,谨慎使用
然后执行命令解压tar -zxvf jdk-16.0.1_linux-x64_bin.tar.gz

image.png

细心的朋友会发现只有jdk目录,没有jre了,因为新版jdk把两者结合成一个包了,配置环境变量也只需要配置jdk的就可以正常使用。

  • 输入命令vim /etc/profile
    image.png
  • 点击i键进入编辑模式,配置环境变量
export JAVA_HOME=/usr/local/soft/jdk-16.0.1
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
  • 点击esc键退出编辑模式,再输入:wq,写入保存退出。
    ps::wq时候保存修改退出,:q是没有修改直接退出

  • 最后用java 、 javac 、java -version三兄弟检验jdk是否安装成功

    image.png

安装Tomcat

tomcat安装可以先下载安装包,再解压。也可以直接用yum在线安装,这里我们直接用yum在线安装更方便

yum install tomcat
//或者
yum -y install tomcat
  • -y 代表遇到询问都选 y,这样安装过程中就不需要手动输入y
    安装完成后,安装目录在/usr/share/tomcat, 我们用 cd 命令切到这个目录,用 ls(或ll) 命令查看这个目录里面的文件
    image.png

    image.png

    启动tomcat服务
  • 查看tomcat的状态:systemctl status tomcat
    启动tomcat: systemctl start tomcat
image.png

Active: inactive (dead)说明tomcat 现在处于 dead(挂了) 状态,服务还没有跑起来。
启动Tomcat服务后,状态是 Active: active (running) , 此时已经代表 tomcat 已经正常的跑起来了。

访问tomcat

tomcat默认端口是8080,接下来浏览输入地址:http://服务器公网ip:8080/。这个页面暂时是无法访问
由于tomcat的web页面是需要安装插件的,这里继续用 tomcat-webappstomcat-admin-webapps 两个插件包

  • 输入命令安装:yum install tomcat-webapps tomcat-admin-webapps
    image.png

安装完之后,8080端口还是无法访问,需要登录阿里云 ECS后台管理,打开云服务器ECS-安全组-配置规则
添加安全组规则,新增8080端口访问权限

  • 规则方向:入方向
  • 协议类型:自定义 FTP
  • 端口范围: 8080/8080
  • 授权对象:0.0.0.0/0


    image.png
  • 设置后,浏览输入地址:http://服务器公网ip:8080/就可以访问Tomcat了
    image.png

Tomcat自启动服务------------ 略

安装Jenkins

  • Jenkins需要在Tomcat中才能运行,即/tomcat/webapps文件夹下
    下载Jenkins

这次使用weget下载Jenkins,wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。
打开Xshell连上服务器,先看 CentOS系统有没自带wget这个工具:rpm -qa | grep wget

[root@VM-0-5-centos tomcat]# rpm -qa | grep wget
wget-1.14-18.el7_6.1.x86_64

能查看到版本号,说明已经安装过了,没有的话,就用yum安装下
yum install wget

jenkins安装包下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war
可以在本地下载之后,使用Xftp工具传到tomcat的"/usr/share/tomcat/webapps"目录下。
这里我们介绍直接使用wget工具下载到linux服务器上,先在webapps里面新建一个jenkins目录

mkdir /usr/share/tomcat/webapps/jenkins
cd /usr/share/tomcat/webapps/jenkins
wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
image.png
  • 我这个速度很快,如果你们速度慢的话可以本地下载Jenkins的war包然后上传到Linux,都一样。
    下载成功后,文件夹下多了一个Jenkins的war包
image.png
  • 下载完之后,解压war包:jar -xvf jenkins.war

启动Jenkins

解压完之后,只要tomcat是启动的,浏览器输入:http://公网ip:8080/jenkins 就能访问了

image.png
  • 首次打开,在/usr/share/tomcat/.jenkins/secrets/initialAdminPassword目录找到密码,vim打开文件就能访问了
image.png
  • 把密码复制了,贴到浏览器输入框就能访问了,弹出的框选左边这个安装全部插件
image.png
  • 等待插件下载完成


    image.png
  • 一片红装,但是问题不大,大概率是安装源的问题。


    image.png

进入jenkins->系统管理->管理插件->高级
把:https://updates.jenkins-ci.org/update-center.json
换成:http://mirror.esuni.jp/jenkins/updates/update-center.json
或者https换成http: http://updates.jenkins.io/update-center.json
PS:我用的是第二个才最终全部安装成功。

image.png

*然后进入插件管理,点击红框的任意一处,就会重复触发安装必要依赖插件。

image.png

image.png

安装Python3

centos7 所有版本依然是默认自带 python2 编译器,使用 python3 需要从网上下载、编译、安装。

但是从 centos7.7 开始,我们有更简单的方式安装,在其发行公告中指出:
"Python 3 is now available. Installing the python3 package gives you the Python 3.6 interpreter"

也就是说,centos7.7 已经帮我们编译好了 python3.6,在有网络的情况下,执行以下命令安装:
yum install python3

  • 校验一下
image.png

需要注意的是,默认的python依然对应python2,实际使用过程用python3和pip3即可。
PS: centos8 已经默认自带 python3.6.8,无需另外安装。

使用Jenkins持续集成项目生成测试报告

项目依赖安装

  • 安装项目的环境依赖,例如pip3 install -r requirements.txt,其他过程略

Jenkins新建任务

  • 新增一个自由风格的任务
image.png

丢弃旧的构建

  • 我们将构建的备份数量限制最多10个,最大保存时间14天,重新构建,非必填


    image.png

源码管理

image.png

image.png

  • 最终源码管理配置成这样


    image.png

构建job--shell命令

image.png

image.png

  • 保存项目,然后初次构建
image.png
  • 看看控制台的输出日志
image.png

生成allure测试报告

  • Allure Jenkins Plugin是集成到Jenkins的allure插件,可以省略由json文件转为html报告的命令步骤
image.png
  • 插件好像改名了,但是描述没有变化。


    image.png

配置job

image.png

  • 新增allure report构建后操作


    image.png
  • 保存然后重新构建一下
    报错了,报错Build step 'Allure Report' marked build as failure

image.png

这个报错是因为Jenkins没有配置好allure,进入Jenkins - 系统管理 - 全局工具配置 - Allure Commandline - 新增 Allure Commandline。 输入别名、勾选自动安装、选择Allure的版本, 构建Job时会自动安装Allure到Jenkins/toorl目录下

image.png

  • 当然你可以选择配置已安装的allure环境
image.png

PS:allure是依赖jdk环境,Linux必须先安装好jdk。Jenkins也是需要用到jdk,但是很少需要手动配置。

  • 重新构建下,成功了


    image.png
  • 查看报告,又发现问题了,报告生成日期和当前日期不一致


    image.png
  • 查看日志发现,报错hrun: error: unrecognized arguments: --clean-alluredir --alluredir=allure-results
    image.png

哦,好吧,这个是 hrun命令出错了,httprunner生成allure报告需要安装allure-pytest依赖,执行命令pip3 install allure-pytest
再次构建查看报告,时间对得上了,这很OK。

image.png

PS:通过这个报错,我们可以发现,生成allure报告一般需要两个步骤,测试框架生成json格式的测试报告,然后再通过allure命令生成友好的HTML测试报告,如下命令

hrun testsuite --clean-alluredir --alluredir=allure-results         #清除旧的json报告生成新的
allure generate allure-results --clean                                #清除旧的html报告生成新的

httprunner框架执行第一步命令,allure框架执行第二步命令
显然,Allure Commandline是帮助我们完成第二步命令。

发送邮件

  • 下载插件,Email Extension Plugin 是发送邮件的Jenkins插件,默认下载依赖,没有手动下载。
image.png

发送邮件的相关配置

  • 通过系统管理→系统设置,进行邮件配置:
image.png

image.png
image.png

image.png
image.png
  • 附上邮件模板

以下是Jenkins自动发送的邮件,请勿回复!

allure报告在线查看or下载allure-report.zip用firefox离线查看,测试用例见附件




项目描述:${JOB_DESCRIPTION}


项目名称:$PROJECT_NAME
构建编号:$BUILD_NUMBER
构建状态:$BUILD_STATUS
触发原因:${CAUSE}
构建地址:${BUILD_URL}
构建日志地址:${BUILD_URL}console
系统allure测试报告:${PROJECT_URL}${BUILD_NUMBER}/allure

${JELLY_SCRIPT}
  • 修改job任务配置,新增Editable Email Notification构建后步骤,Triggers设置为Always,其他的默认即可.


    image.png
image.png

image.png
  • 重新构建,查看是否收到邮件


    image.png

其它遇到的问题

  1. 构建任务时,输出日志 xxx command no found,报错命令不存在
    这个是新手入坑大概率会遇到的问题,比如需要使用shell命令运行Python文件python3 demo.py,可能会报错python3 command no found
    解决办法:Jenkins配置PATH环境变量
    在Linux输入命令echo $PATH,获取环境变量
    image.png

    然后再进入Jenkins, 系统管理 - 系统配置-全局属性,配置PATH
    image.png
  2. 构建任务时,报错Jenkins Build step 'Execute shell' marked build as failure
    度娘说报错原因是磁盘空间不足导致报错
    解决办法:第一行加上#!/bin/bash,网上都是这个答案,我试了都不行,最终在最后一行加上exit 0就搞定了
    image.png
  3. 构建日志输出Build step 'Allure Report' changed build result to UNSTABLE, 构建成功Alure report将构建标记为不稳定
    如图,构建状态都是黄色
    image.png

原因是存在执行失败的测试用例时,构建后操作 - Allure Report将构建标记为不稳定; 不存在失败的测试用例则不会标记为不稳定(不需理会)

你可能感兴趣的:(Linux+Jenkins+httprunner+allure生成测试报告)