python3+selenium项目在centos上用gitlab+jenkins运行
背景
项目在windows上写的,代码管理gitlab,现在需要集成到jenkins上面去,jenkins安装在centos服务器上的
前置条件
1.jekins的服务器centos上已经安装了git,且已经添加到环境变量
2.jenkins已经安装好gitlab的各种插件,设置-插件管理中搜索并安装
jenkins创建项目,拉取gitlab上的代码
在jenkins上创建任务,代码管理中,从gitlab上的得到你项目的https地址(不是ssh哈),使用简单的http连接,输入账号密码就可以连通
输入地址后,点击添加,在弹出的框中输入用户名和密码(gitlab的用户名和密码),界面没出现红色提示,就代表能够连通
在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批处理命令”
jenkins配置 定时执行
如果要设置定时执行,在构建触发器中设置
在 Schedule 中填写的五个 * * * * *。
第一个代表的是分钟 minute,取值 0~59;
第二个代表的是小时 hour,取值 0~23;
第三个代表的是天 day,取值 1~31;
第四个代表的是月 month,取值 1~12;
最后一个代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 下面这个0 10 * * * 表示的就是每天10点构建
配置完成,就可以构建项目了
点击立即构建,点击正在构建的任务
点击控制台输出,就能看到日志了
过程当中会遇到的坑
肯定不会这么顺利的
下面是我遇到的各种坑
windows上写的代码,无法掉用起centos上的chrome
在windows上的代码:
在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.)
这是因为,在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上正常运行了
centos 调起的chrome浏览器中文全部显示为方框 □
参考这篇文章
https://blog.csdn.net/weixin_40274647/article/details/102785872