持续集成——构建接口自动化测试的一种解决方案

给大家提供一种解决方案的思路,目前大部分同学接触到的 jenkins 构建自动化应该都是代码和 jenkins 服务在同一台服务器上面,但是很多时候事与愿违,也许公司的架构并不允许 jenkins 服务器并不允许做别的事情,jenkins 服务器功能单一,只做构建 job 等系列工作,但代码及运行环境不在 jenkins 这台服务器,这里给大家提供一种解决思路:

  1. 一台测试服务器(用于运行接口自动化测试脚本)
  2. jenkins 服务器(仅用于构建任务 job 的管理工作,执行代码及运行脚本工作并不在此服务器上)

思路如下:

1. jenkins 服务器用于:

1)源码管理

image.png

2)构建脚本

image.png

jenkins 通过 ssh 远程服务器IP地址 的方式远程连接服务器,然后执行远程服务器上的一套构建脚本,
当执行完成构建脚本后,利用 python 中的 allure 插件生成 result 结果目录,并通过 rsync 命令,将远程服务器
中执行完成后的 result 结果目录回传至 jenkins 服务器中该 job 的工作区间指定路径,然后利用 jenkins 上集成的
allure 插件自动生成测试报告

⚠️ 综上所述注意点如下:

1)SSH 远程连接服务器时,首先需要将 jenkins 的公钥信息提供给远程那台服务器,并且存放至/root/.ssh/authorized_keys 文件中存储

这样才可以免密码登录

2)远程服务器中需要安装 allure 插件,本方案针对于利用 pytest+allure 构建自动化测试的项目,可参考 http://www.lemfix.com/topics/16 这篇帖子

3)远程服务器构建脚本示例如图:

image.png
请注意这里必须引入 Java 环境变量,allure 插件才可以顺利工作

4)rsync 命令参考此文:https://www.cnblogs.com/kevingrace/p/8529792.html

推荐使用 rsync 而不推荐使用 scp 命令,原因是速度快很多倍,缺点是消耗性能大一些,但是可忽略不计(我们只是传个测试结果而已,大的也就 100MB 左右)

5)远程服务器的构建脚本拉代码推荐使用如题所示方式,可以避免冲突

git reset --hard
git pull

补充说明:

介绍一下 jenkins 安装 allure 插件的方法:

1)安装插件处搜索 allure

image.png

2)安装完毕后配置如下:

全局工具配置
image.png

3)job 中配置:

image.png

最后我们看一下构建日志

image.png
image.png

测试报告

image.png

9 回帖
请输入回帖内容 ...