给大家提供一种解决方案的思路,目前大部分同学接触到的jenkins构建自动化应该都是代码和jenkins服务在同一台服务器上面,但是很多时候事与愿违,也许公司的架构并不允许jenkins服务器并不允许做别的事情,jenkins服务器功能单一,只做构建job等系列工作,但代码及运行环境不在jenkins这台服务器,这里给大家提供一种解决思路:
1.一台测试服务器(用于运行接口自动化测试脚本)
2.jenkins服务器(仅用于构建任务job的管理工作,执行代码及运行脚本工作并不在此服务器上)
思路如下:
jenkins服务器用于:
1)源码管理
源码管理
2)构建脚本
构建脚本
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)远程服务器构建脚本示例如图:
远程构建脚本
请注意这里必须引入java环境变量,allure插件才可以顺利工作
4)rsync命令参考此文:
https://www.cnblogs.com/kevingrace/p/8529792.html
推荐使用rsync而不推荐使用scp命令,原因是速度快很多倍,缺点是消耗性能大一些,但是可忽略不计(我们只是传个测试结果而已,大的也就100MB左右)
5)远程服务器的构建脚本拉代码推荐使用如题所示方式,可以避免冲突
补充说明:
介绍一下jenkins安装allure插件的方法:
1)安装插件处搜索allure
2)安装完毕后配置如下:
全局工具配置
全局工具配置
3)job中配置:
最后我们看一下构建日志
构建日志1
构建日志2
测试报告
作者:子不语的花未眠
链接:https://www.jianshu.com/p/8b967beab27c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Jenkins 创始人 KK 将会在GOPS 2019 · 深圳站带来精彩分享啦~
领取专属 10元无门槛券
私享最新 技术干货