前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >无用自动化: 打通任督二脉,Centos7部署python脚本,访问测试报告

无用自动化: 打通任督二脉,Centos7部署python脚本,访问测试报告

作者头像
Mokwing
发布2020-09-08 11:21:47
7210
发布2020-09-08 11:21:47
举报
文章被收录于专栏:Mokwing

服务器执行脚本运行

  • 前言
  • 环境
    • 配置过程
      • 1. 安装Chrome
      • 2. 配置驱动
      • 3. 安装python
      • 4. 自动化脚本
      • 5. 生成报告
  • 最后

前言

一直以来都是在windows本地上运行脚本执行,对如何在Centos服务器上运行脚本一无所知。一直以为需要打开浏览器,看着页面才能运行,结果…趁着今天无事,研究了一下。

废话不多说,上菜。

环境

首先,是环境的准备,我在自己的主机上安装了一个虚拟机,如果有云服务的,可以直接使用云服务器就行,这里不赘述系统安装过程。

服务

版本

服务器

CentOS Linux release 7.6.1810 (Core)

jdk

jdk.1.8.0_261

python

Python 3.8.5

pytest

pytest-6.0.1

allure2

allure-pytest-2.8.18

selenium

3.141.0

chrome

Google Chrome 85.0.4183.83

chromedriver

85.0.4183.83

配置过程

1. 安装Chrome

因为服务器自带一般没有Chrome的下载源,所以需要我们自己配置一个。

  1. 进入 yum.repos.d 目录 cd /etc/yum.repos.d/
  2. 新建文件 google-chrome.repo vi google-chrome.repo
  3. 输入以下内容,然后保存退出(: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
  4. 安装 yum install -y google-chrome-stable --nogpgcheck
  5. 查看浏览器版本 google-chrome --version

到这里,浏览器就安装成功了。 如果这里出现什么问题,比如缺少一些so文件,则根据提示度娘一下,一般执行一个yum命令之后,就可以解决。因为配置时没有截图,所以这里我就没有详细说明。

2. 配置驱动

  1. 驱动下载地址https://chromedriver.storage.googleapis.com/index.html
  2. 找到与浏览器匹配的驱动下载
  3. 可以本地解压,也可以在服务器上解压,我这里本地解压之后上传到服务器,目录如下mv chromedriver /usr/bin
  4. 查看权限,赋予权限,更改用户组ls -l chromedriver chmod 755 /usr/bin/chromedriver chown root:root /usr/bin/chromedriver

默认一般都是root权限,可以不进行修改,如果您有自己安排,就根据具体情况修改就行。

3. 安装python

如果您已经安装过了,这一步就可以跳过,进入下一步。

  1. 卸载现有的pythonrpm -qa|grep python|xargs rpm -ev --allmatches --nodeps # 强制删除已安装程序及其关联 whereis python |xargs rm -frv # 删除所有残余文件 ##xargs,允许你对输出执行其他某些命令 whereis python # 验证删除,返回无结果
  2. 安装依赖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
  3. 下载pythonhttps://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz
  4. 解压tar -xvf Python-3.8.5.tar.xz
  5. 安装cd Python-3.8.5 ./configure --prefix=/usr/local/python3 make && make install
  6. 创建软连接ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
  7. 验证安装python3 -V pip3 -V

4. 自动化脚本

  1. 将本地依赖文件生成txt文档进入项目根目录,执行命令。 pip freeze > requirements.txt
  2. 上传到服务器中,可以自己创建一个目录,将项目放入进去,可以不放入venv文件夹
  3. 服务器安装模块pip3 install -r requirements.txt
  4. 全部安装成功,就可以执行自动化脚本pytest test_case.py
  5. 注意,在脚本内容中需要添加这些内容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. 生成报告

  1. 安装allurenpm install -g allure-commandline --save-dev
  2. 执行测试命令pytest -s -q --alluredir=report/xml/
  3. 生成html报告allure generate report/xml/ -o report/html
  4. 启动allure访问报告内容allure open -p 80 ./report/html/
  5. 打开本地浏览器,使用 http://ip:80 访问,可以查看到报告内容。 注意,需要在服务器上安装allure服务,allure会依赖java,所以环境中需要安装java。

最后

记录了大概的内容,因为我自己操作时遇到的一些问题没有当时记录,所以可能记录不太全面,如果您在操作过程中遇到问题,欢迎评论留言,如果对您有帮助,请记得点赞评论,能够有赞赏就更好哦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务器执行脚本运行
  • 前言
  • 环境
    • 配置过程
      • 1. 安装Chrome
      • 2. 配置驱动
      • 3. 安装python
      • 4. 自动化脚本
      • 5. 生成报告
  • 最后
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档