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

服务器执行脚本运行

  • 前言
  • 环境
    • 配置过程
      • 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. 卸载现有的python
    rpm -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. 下载python
    https://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)
    

执行查看运行情况,如果没有报错信息,则代表运行成功。如图:
无用自动化: 打通任督二脉,Centos7部署python脚本,访问测试报告_第1张图片

5. 生成报告

  1. 安装allure
    npm 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。

最后

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

										( ̄▽ ̄)~■干杯□~( ̄▽ ̄)

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

你可能感兴趣的:(自...自......自动化?,服务器运行自动化脚本,python,自动化)