服务器执行脚本运行
- 前言
- 环境
- 配置过程
- 1. 安装Chrome
- 2. 配置驱动
- 3. 安装python
- 4. 自动化脚本
- 5. 生成报告
- 最后
前言
一直以来都是在windows本地上运行脚本执行,对如何在Centos服务器上运行脚本一无所知。一直以为需要打开浏览器,看着页面才能运行,结果…趁着今天无事,研究了一下。
废话不多说,上菜。
环境
首先,是环境的准备,我在自己的主机上安装了一个虚拟机,如果有云服务的,可以直接使用云服务器就行,这里不赘述系统安装过程。
| |
---|
| CentOS Linux release 7.6.1810 (Core) |
| |
| |
| |
| |
| |
| Google Chrome 85.0.4183.83 |
| |
配置过程
1. 安装Chrome
因为服务器自带一般没有Chrome的下载源,所以需要我们自己配置一个。
- 进入 yum.repos.d 目录
cd /etc/yum.repos.d/
- 新建文件 google-chrome.repo
vi google-chrome.repo
- 输入以下内容,然后保存退出(:wq)
[google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
- 安装
yum install -y google-chrome-stable --nogpgcheck
- 查看浏览器版本
google-chrome --version
到这里,浏览器就安装成功了。
如果这里出现什么问题,比如缺少一些so文件,则根据提示度娘一下,一般执行一个yum命令之后,就可以解决。因为配置时没有截图,所以这里我就没有详细说明。
2. 配置驱动
- 驱动下载地址https://chromedriver.storage.googleapis.com/index.html
- 找到与浏览器匹配的驱动下载
- 可以本地解压,也可以在服务器上解压,我这里本地解压之后上传到服务器,目录如下mv chromedriver /usr/bin
- 查看权限,赋予权限,更改用户组ls -l chromedriver chmod 755 /usr/bin/chromedriver chown root:root /usr/bin/chromedriver
默认一般都是root权限,可以不进行修改,如果您有自己安排,就根据具体情况修改就行。
3. 安装python
如果您已经安装过了,这一步就可以跳过,进入下一步。
- 卸载现有的pythonrpm -qa|grep python|xargs rpm -ev --allmatches --nodeps # 强制删除已安装程序及其关联 whereis python |xargs rm -frv # 删除所有残余文件 ##xargs,允许你对输出执行其他某些命令 whereis python # 验证删除,返回无结果
- 安装依赖yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum install -y libffi-devel zlib1g-dev
- 下载pythonhttps://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz
- 解压tar -xvf Python-3.8.5.tar.xz
- 安装cd Python-3.8.5 ./configure --prefix=/usr/local/python3 make && make install
- 创建软连接ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
- 验证安装python3 -V pip3 -V
4. 自动化脚本
- 将本地依赖文件生成txt文档进入项目根目录,执行命令。 pip freeze > requirements.txt
- 上传到服务器中,可以自己创建一个目录,将项目放入进去,可以不放入venv文件夹
- 服务器安装模块pip3 install -r requirements.txt
- 全部安装成功,就可以执行自动化脚本pytest test_case.py
- 注意,在脚本内容中需要添加这些内容chrome_options = Options() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('window-size=1920x3000') # 指定浏览器分辨率 chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug chrome_options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面 chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 self._driver = webdriver.Chrome(options=chrome_options)
执行查看运行情况,如果没有报错信息,则代表运行成功。如图:
5. 生成报告
- 安装allurenpm install -g allure-commandline --save-dev
- 执行测试命令pytest -s -q --alluredir=report/xml/
- 生成html报告allure generate report/xml/ -o report/html
- 启动allure访问报告内容allure open -p 80 ./report/html/
- 打开本地浏览器,使用 http://ip:80 访问,可以查看到报告内容。
注意,需要在服务器上安装allure服务,allure会依赖java,所以环境中需要安装java。
最后
记录了大概的内容,因为我自己操作时遇到的一些问题没有当时记录,所以可能记录不太全面,如果您在操作过程中遇到问题,欢迎评论留言,如果对您有帮助,请记得点赞评论,能够有赞赏就更好哦。