python3+selenium项目在centos上用gitlab+jenkins运行

python3+selenium项目在centos上用gitlab+jenkins运行

  • 背景
  • 前置条件
  • jenkins创建项目,拉取gitlab上的代码
  • 在jenkins的服务器centos上,安装python+selenium的运行环境
  • jenkins上项目配置中,构建执行语句
  • jenkins配置 定时执行
  • 配置完成,就可以构建项目了
  • 过程当中会遇到的坑
    • windows上写的代码,无法掉用起centos上的chrome
    • centos 调起的chrome浏览器中文全部显示为方框 □

背景

项目在windows上写的,代码管理gitlab,现在需要集成到jenkins上面去,jenkins安装在centos服务器上的

前置条件

1.jekins的服务器centos上已经安装了git,且已经添加到环境变量
2.jenkins已经安装好gitlab的各种插件,设置-插件管理中搜索并安装

jenkins创建项目,拉取gitlab上的代码

在jenkins上创建任务,代码管理中,从gitlab上的得到你项目的https地址(不是ssh哈),使用简单的http连接,输入账号密码就可以连通

输入地址后,点击添加,在弹出的框中输入用户名和密码(gitlab的用户名和密码),界面没出现红色提示,就代表能够连通
python3+selenium项目在centos上用gitlab+jenkins运行_第1张图片
python3+selenium项目在centos上用gitlab+jenkins运行_第2张图片

在jenkins的服务器centos上,安装python+selenium的运行环境

centos自带已经装了python2,不要卸载,直接装python3

装python3:yum install python36 需要什么版本的python就装什么版本的

安装插件:pip3 install XXXX 需要什么安装什么

安装谷歌浏览器:

下载包:wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

安装下载好的谷歌浏览器:yum install ./google-chrome-stable_current_x86_64.rpm

测试谷歌浏览器是否安装好:google-chrome --version 没报错就安装好了,现在不要去调用google-chrome如果你是root权限安装的,是会报错的,但是不影响selenium使用

安装chromedriver:因为刚刚下载的是最新版本的google-chrome,所以直接在windows上下载最新版本的chromedriver

注意:要下linux版本的,解压后,通过xshell放到centos上去,直接放到python3可执行目录下:/usr/bin下

给予执行权限:chmod +x /usr/bin/chromedriver

服务器环境就配置好了

jenkins上项目配置中,构建执行语句

执行构建语句就是你要做什么操作,我们这里是要运行python代码,入口是runner.py,所以就执行它
因为是centos环境运行,选择shell执行,如果是windows环境,就选择“执行windows批处理命令”
python3+selenium项目在centos上用gitlab+jenkins运行_第3张图片

jenkins配置 定时执行

如果要设置定时执行,在构建触发器中设置

在 Schedule 中填写的五个 * * * * *
第一个代表的是分钟 minute,取值 0~59;
第二个代表的是小时 hour,取值 0~23;
第三个代表的是天 day,取值 1~31;
第四个代表的是月 month,取值 1~12;
最后一个代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 下面这个0 10 * * * 表示的就是每天10点构建
python3+selenium项目在centos上用gitlab+jenkins运行_第4张图片

配置完成,就可以构建项目了

点击立即构建,点击正在构建的任务

python3+selenium项目在centos上用gitlab+jenkins运行_第5张图片

点击控制台输出,就能看到日志了

python3+selenium项目在centos上用gitlab+jenkins运行_第6张图片

过程当中会遇到的坑

肯定不会这么顺利的
下面是我遇到的各种坑

windows上写的代码,无法掉用起centos上的chrome

在windows上的代码:
python3+selenium项目在centos上用gitlab+jenkins运行_第7张图片
在jenkins上会报错:
(unknown error: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
python3+selenium项目在centos上用gitlab+jenkins运行_第8张图片
这是因为,在windows上,默认是要调起浏览器的UI画面,但是在centos上,通过命令行运行的谷歌浏览器,是不会真正掉UI画面的
需要在代码中设置chrome一些参数
正常来讲,这几个就够了
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(’–headless’) #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
chrome_options.add_argument(’–no-sandbox’) # 以最高权限运行
chrome_options.add_argument(’–disable-gpu’) #禁用GPU加速

启动参数 作用
–user-agent="" 设置请求头的User-Agent
–window-size=1366,768 设置浏览器分辨率
–headless 无界面运行
–start-maximized 最大化运行
–incognito 隐身模式
–disable-javascript 禁用javascript
–disable-infobars 禁用浏览器正在被自动化程序控制的提示
–disable-gpu 禁用GPU加速

设置之后的代码,就能在centos上正常运行了
python3+selenium项目在centos上用gitlab+jenkins运行_第9张图片

centos 调起的chrome浏览器中文全部显示为方框 □

参考这篇文章
https://blog.csdn.net/weixin_40274647/article/details/102785872

你可能感兴趣的:(jenkins)