自动化测试脚本开发完成以后,希望可以把脚本放在公共的环境下提供一个入口供大家一起使用,目前最好的解决方案就是需要把代码部署在Jenkins上,下面看下如何在Jenkins配置自动化测试任务;

  1.首先我们需要搭建Jenkins的运行环境;

  2.环境搭建完成最重要的是安装插件,插件的安装需要根据自己实际的使用情况安装,没有必要大而全的安装,这样很容易引入一些没有必要的麻烦,比如说插件的漏洞,会让你服务器遭受到不必要的攻击;

    目前我的代码托管在公司内部的gitlab,首先我需要在Jenkins安装Git plugin/Git client/GIT server Plugin 插件,这里主要我们想通过jenkins自动从gitlab上获取代码,插件安装称成功以后重新启动Jenkins;

 3.Jenkins 服务器安装GIT工具

  • Linux 安装GIT
# 安装git
    yum install git -y

# 校验安装是否成功
     git --version
  • Window安装GIT
# 下载地址
https://git-scm.com/download/win

  下载完成一步一步的进行安装直到完成,安装过程中需要命令添加环境变量,执行git --version 返回结果安装成功  

   

  4.Jenkins 配置全局工具

  •  系统管理 --> 全局工具配置 --> Git

  • Linux 查询git命令的位置
[root@iZ25vrq5z1zZ plugins]# which git
/usr/bin/git

  5.创建Jenkins任务,目前我们的自动化主要采用Python来开发,所以我这边只要创建一个《构建一个自由风格的软件项目》,如果是java开发的项目可以创建《构建一个maven项目》,其实这里主要就是个模板的问题;

  

6、添加 git 凭证:

 7、设置 git 账号信息,保存:

8、添加 git 仓库代码地址:https://github.com/xxx.git

8、先保存,自测拉取代码是否正常,点击【立即构建】,我这里在【控制台输出】查看git拉取正常:

 

 二、jenkins 设置运行shell

1、编辑设置刚才的工程,找到构建器,添加:执行shell

 2、拉取的代码在此目录下:/var/lib/jenkins/workspace/xxxx,xxxxx是在jenkins中创建的任务名,或者根据控制台的输出我们知道拉取的代码在哪目录下:

那么我们就可以执行:python3 /var/lib/jenkins/workspace/xxxx/xxx.py 文件了

我的输入shell构建的命令如下:

cd /var/lib/jenkins/workspace/xxxxx

/usr/bin/python3 run_cases.py

 3、保存后,我们就可以点击立即构建:

总结,这里遇到的坑:

①linux 未安装 git,构建报错TTY??或者在输入git URL时就报错了,如下图:

解决办法:linux 上安装 git(一个命令搞定,注意如果还不行看下jenkins全局设置的git路径是否对应)

yum install git -y

  

配置任务注意事项

    配置Jenkins任务主要配置两点,第一代码管理,第二是构建

  • 代码管理

    

    代码拉取的权限,代码拉取的权限配置方式很多,我们这里只要通过gitlab的账号和密码即可,这样我们就可以自动拉取代码

    

  • 构建

     构建我们可以理解为,执行代码的方式即可,如果Linux 下部署构建命令执行shell脚本,如果是win部署,我们需要构建命令bat脚本;

  

  注意:

    如果代码下载完成后,我们可以通过pwd的命令查询下当前位置,然后通过相对路径找到代码路径;

  目前我使用run.py脚本执行自动化测试,所以我这边只需要shell添加执行run.py命令就可以构建执行;

参数化配置

chmod -R 777 ./*
cd config
if [ -n "$cookie" ];
then
#删除x一sso—token这一行,设置cookie才能运行
sed -ie '/x-sso-token:/d' config.yaml
#设置cookie
sed -i "/request_headers:/a \\\x20\x20x-sso-token: ${cookie}" config.yaml
fi
# 返回上一层执行用例
cd ..
python3 run.py

 

 

jenkins配置并生成allure报告

在配置jenkins上生成allure报告时,页面找不到报告数据,但控制台又提示报告已生成,其实归根结底就是报告路径的问题。如下图展示:

path要和--alluredir指定的报告目录一致

pytest.main(['-s', '-v', '../testcase/', '--alluredir=../report/allure', '--clean-alluredir'])
#指定运行testcase目录下测试用例,--alluredir=../report/allure, report/allure是原始报告目录,生成的是json数据
# --clean-alluredir每次运行会清空上次生成的数据

最后,以上配置完成后,我们点击jenkins的按钮,构建成功后就可以打开allure报告了,如下图展示:

在jenkins中把报告打包通过附件发送到邮件,然后在邮件中下载解压打开就会出现如下情况


其实在allure-report下index.html文件是不能直接打开的,否则会出现页面都是loading的情况,这是因为直接allure报告用浏览器是打不开的,需要用allure命令渲染之后打开才能展示效果(allure常识)。
allure使用了两种方式来渲染页面。分别是 allure open 和 allure serve。前者用于在本地渲染和查看结果,后者用于在本地渲染后对外展示结果。这里我们使用allure open。运行命令
allure open allure-report目录 

即可自动打开浏览器展示渲染好的结果。这里的allure-report目录为使用generate命令把原始json数据生成html测试报告后存入的目录。

allure open -h 127.0.0.1 -p 4443 /report/allure_report

 1、执行的脚本中生成allure报告和打开报告的代码需要删除,由jenkins上的allure报告插件生成

2、项目job中的workspace可以看到gitlab拉取的代码存放路径,jenkins上配置allure报告路径可以参考

 3、

Logo

一站式 AI 云服务平台

更多推荐