网站首页 > 博客文章 正文
一、搭建Python环境
1、查看Linux中Python的版本,可以用python 或者python -V查看,因为我们得项目大多使用Python3.x,所以要安装一个Python3的版本‘
2、下载并解压Python3.x
cd /opt/soft
执行 wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz 下载Python3.6.5
tar -zxvf Python-3.6.5.tgz 解压到当前目录
3、安装Python3.6.5
进入解压后的Python-3.6.5 文件夹, cd Python-3.6.5
以此执行
./configure
如果执行报错:configure: error: no acceptable C compiler found in $PATH,说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包。
安装完成再次执行 ./ configure
make
make install
经过漫长的等待,安装完成后,执行python3 -V命令检查是否安装成功
4、将Python3.x设置为默认版本
查看当前python指向的连接,ls -al /usr/bin | grep python
可以看到如果执行python命令,指向的是python2.7版本
所以,如果要将默认版本设置为3.x我们就要将原来 python 的软链接重命名:
执行mv /usr/bin/python /usr/bin/python.bak
再将python命令指向python3:ln -s /usr/local/bin/python3 /usr/bin/python
这个时候再查看python的版本:python -V
5、如果升级完3.x,记得把yum的配置文件:
/usr/libexec/urlgrabber-ext-down 和 /usr/bin/yum 中的#!/usr/bin/python 改为 #!/usr/bin/python2.7即可。
二、安装selenium
由于目前系统中默认的Python版本为3.x,所以直接执行pip 安装命令即可安装项目中需要的扩展库。
1、查看pip版本,pip -V,如果版本低于18,执行pip install --upgrade pip 升级pip版本
如果遇到ssl问题,执行rpm -aq|grep openssl查看是否有openssl-devel文件,如没有yum install openssl-devel -y安装 ,安装成功后,修改vi /opt/soft/Python-3.6.5/Modules/Setup,增加
#_codecs_cn cjkcodecs/_codecs_cn.c
#_codecs_hk cjkcodecs/_codecs_hk.c
#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
#_codecs_jp cjkcodecs/_codecs_jp.c
#_codecs_kr cjkcodecs/_codecs_kr.c
#_codecs_tw cjkcodecs/_codecs_tw.c
# Example -- included for reference only:
# xx xxmodule.c
# Another example -- the 'xxsubtype' module shows C-level subtyping in action
xxsubtype xxsubtype.c
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
保存并退出后,重新安装Python:
cd /opt/soft/Python-3.6.5
make
make install
这时候在执行pip安装就可以了。
2、安装selenium
执行 pip install selenium 默认安装最新版本
三、启动项目遇到的问题
1、初始化driver没有指定Firefox驱动的路径
2、火狐浏览器版本与驱动不一致
查看:chromedriver与chrome版本对应表,firefox、geckodriver
https://www.cnblogs.com/jinxiao-pu/p/8682126.html
3、火狐版本不是最新的:
直接yum 安装:yum install firefox
4、
Q:selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status: 1
A:This error can come up when you are trying to run the browser in non-headless mode on a box that doesn't have a display (like an Ubuntu server).
查看运行目录的cat geckodriver.log火狐驱动日志
由于服务器没有图形界面,导致无法启动浏览器,尴尬,接下来就要解决图形界面的问题了,未完待续……
分割线###################################################################################
后续来了
本地UI自动化项目如何放到服务器上利用Jenkins定时执行呢?
百度了一下,有两种方案,一是PhantomJS,而是让前者失业的Chrome headless mode。
PhantomJS 是一个基于WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准:DOM 处理、CSS 选择器、SON、Canvas、和 SVG。PhantomJS可以用于页面自动化、网络监测、网页截屏以及无界面测试 等。
PhantomJS 最近被selenium放弃了,Chrome headless mode完全和有界面的Chrome一样,可以完美的替代Chrome。
一、选择无界面模式
那我们将项目部署到改如何选择呢?我分别尝试了两种模式。
1.第一次尝试用Chrome headless mode。
在本地调试成功,代码很简单:
opt = webdriver.ChromeOptions()
opt.add_argument('--headless')
opt.add_argument("--window-size=1920,1080")
driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=opt)
webdriver.ChromeOptions是谷歌专门做的headless mode驱动,可以代替Chrome,
一般情况下,我们调用谷歌浏览器只需要
driver = webdriver.Chrome(executable_path='./chromedriver')即可,区别在于增加了一个chrome_options参数,传入opt = webdriver.ChromeOptions()即调用headless mode。
本地运行项目,执行case成功,下一步把代码迁移到服务器,修改executable_path为服务器上驱动的路径,执行项目,需要在Linux服务器上安装Chrome,由于公司服务器都是centos,所以不好安装指定版本的Chrome,所以放弃……
2.尝试PhantomJS
直接将webdriver.PhantomJS()当做一种浏览器使用,类似webdriver.Firefox(),webdriver.Chrome();
其中executable_path为PhantomJS驱动的路径。
driver = webdriver.PhantomJS(executable_path='phantomjs-2.1.1/bin/phantomjs')
本地运行项目,执行case成功。同样下一步把代码迁移到服务器,执行case,完美成功,
需要注意的一点是,页面加载可能不如本地快,所以有必要加一些等待时间来给页面加载。
所以要在服务器做无界面UI自动化测试,PhantomJS无疑是最简单的,也是依赖少的。
Jenkins上新建任务,AutoTest,设置git路径和账号密码。
二、Jenkins执行服务器UI自动化测试项目
增加构建Excute shell如下:
ssh root@IP "rm -rf /home/webapp/WebUI/Settle/*"
scp -r /root/.jenkins/workspace/settleWebUI/* root@IP:/home/webapp/WebUI/Settle
ssh root@IP "cd /home/webapp/WebUI/Settle&&python run_settle_all_test.py"
执行任务即可
二、遇到的问题
1.问题:服务器运行case,截图乱码
解决:由于服务器字体库,执行yum install bitmap-fonts bitmap-fonts-cjk即可
未完待续
猜你喜欢
- 2024-09-21 Zabbix3.x安装图解教程(zabbix安装方式)
- 2024-09-21 Linux安装(二)(linux安装视频教程)
- 2024-09-21 Linux详解系列一:如何安装系统及客户端工具的使用
- 2024-09-21 activiti6在阿里云centos7上流程图乱码问题
- 2024-09-21 Zabbix6.0安装后初步使用碰到的中文字符乱码和图标时间显示问题
- 2024-09-21 基于docker部署zabbix5.4(基于docker部署,pgsql11.3安装时序数据库插件)
- 2024-09-21 第一章 Go语言安装及开发环境配置
- 2024-09-21 centos7虚拟机挂载硬盘(centos7.4挂载硬盘)
- 2024-09-21 windows服务器支持站点使用iconfont字体
- 2024-09-21 快速掌握基于Virtualbox最小化安装centos6及远程工具xshell使用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)