CentOS7安裝部署HttpRunnerManager接口自動化測試

HttpRunnerManager項目是基於httpRunner的接口自動化測試平臺,純Python語言開發。可實現接口自動化測試、性能測試、監控、Jenkins集成等測試任務。Github上現在HttpRunnerManager已停止維護。

  • 環境準備
    CentOS7;
    Python3.6.4(3.7版本,會有各種問題);
    HttpRunnerManager V2.0;
    Mysql 5.6(推薦Mysql5.7);
    Rabbitmy-server3.6.8。

  • HttpRunnerManager代碼下載
    git地址:https://github.com/HttpRunner/HttpRunnerManager 下載後解壓到服務器/usr/local目錄下

    root@migration-qa-srv HttpRunnerManager-master]# ll
    總用量 56
    drwxr-xr-x 6 root root 4096 8月  15 14:40 ApiManager
    drwxr-xr-x 3 root root 4096 8月  16 11:53 HttpRunnerManager
    drwxr-xr-x 2 root root 4096 7月  11 13:13 images
    -rw-r--r-- 1 root root 1079 7月  11 13:13 LICENSE
    drwxr-xr-x 2 root root 4096 7月  11 13:13 logs
    -rw-r--r-- 1 root root  815 7月  11 13:13 manage.py
    -rw-r--r-- 1 root root 9488 7月  11 13:13 README.md
    -rw-r--r-- 1 root root  188 8月  15 17:12 requirements.txt
    drwxr-xr-x 3 root root 4096 7月  11 13:13 static
    drwxr-xr-x 2 root root 4096 8月  16 11:08 suite
    drwxr-xr-x 2 root root 4096 8月  16 10:22 templates
    -rw-r--r-- 1 root root  274 7月  11 13:13 uwsgi.ini
  • Python3.6環境準備
    下載Python3.6版本。wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
    安裝到/usr/local目錄。
    操作命令:

    tar -xzvf Python-3.6.4.tgz 
    cd Python-3.6.4
    ./configure --prefix=/usr/local/python3.6
    make & make install
    ln -s  /bin/python  /usr/local/python3.6/bin/python3.6
    ln -s  /bin/pip  /usr/local/python3.6/bin/pip3.6
    pip -V
    python -V

    安裝python3.6覆蓋了系統默認的python2.7,yum要可用,需更改yum的配置文件。修改yum配置文件 /usr/bin/yum、/usr/libexec/urlgrabber-ext-down這兩個文件,將兩個文件的頭部的“#!/usr/bin/python”改成“#!/usr/bin/python2.7”。改爲之前的老版本號。這樣,yum可正常使用了。
    更新pip,python -m pip install --upgrade pip
    用pip -V命令查看最新版本:
    pip版本查看:pip -V

    [root@migration-qa-srv python3.6]# pip -V
    pip 19.2.2 from /usr/local/python3.6/lib/python3.6/site-packages/pip (python 3.6)

    查看安裝的Django版本:
    CentOS7安裝部署HttpRunnerManager接口自動化測試

  • 數據庫準備
    這裏使用Mysql5.6,MySQL安裝略,這裏新建HttpRunnerManager項目的庫,登錄信息。
    修改HttpRunnerManager配置
    vim HttpRunnerManager/settings.py
    數據庫:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'http_runner',
            'USER': 'runner',
            'PASSWORD': 'passwd',
            'HOST': 'localhost',
            'PORT': '3306', 
        }
    }

    rabbitmy-server服務器地址:

    BROKER_URL = 'amqp://guest:[email protected]:5672//' if DEBUG else 'amqp://guest:[email protected]:5672//'

    郵箱配置:

    EMAIL_SEND_USERNAME = '[email protected]'
    EMAIL_SEND_PASSWORD = 'passwd'

    這裏修改requirements.txt下的Django == 2.0.3 改爲 Django == 2.1.2:
    vim requirements.txt

    Django == 2.1.2
    PyYAML == 3.12
    requests == 2.18.4
    eventlet == 0.22.1
    mysqlclient == 1.3.12
    django-celery == 3.2.2
    flower == 0.9.2
    dwebsocket == 0.4.2
    paramiko == 2.4.1
    HttpRunner == 1.5.8

    安裝工程所依賴的庫文件requirements.txt。當心這有N多坑。

    pip install -r requirements.txt
  • 安裝RabbitMq
    下載地址(https://www.rabbitmq.com/install-rpm.html
    操作命令:
    wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm
    rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm
    配置RabbitMQ,啓動RabbitMQ服務
    systemctl start rabbitmq-server.service

  • HttpRunnerManager安裝服務啓動
    生成數據庫遷移腳本,並生成表結構

    python manage.py makemigrations ApiManager  #生成數據遷移腳本
    python manage.py migrate   #應用到db生成數據表

    創建超級用戶,用戶後臺管理數據庫,並按提示輸入相應用戶名、密碼、郵箱。 如不需用,可跳過此步驟。

    python manage.py createsuperuser

    這裏配置了,操作如下圖:
    CentOS7安裝部署HttpRunnerManager接口自動化測試
    啓動HttpRunnerManager服務,這裏後臺啓動,避免控制檯退出,服務也停止。啓動服務端口8000,也可使用其他端口,要確保服務端端口不佔用。

    python manage.py runserver 0.0.0.0:8000 &
  • 訪問
    這裏前端用域名使用Nginx代理訪問。
    Nginx配置:
    upstream runner {
        server 127.0.0.1:8000;
        }
    server {
        listen          80;
        server_name     runner.a.com;
        access_log /data/logs/http-runner.alaxiaoyou.com-access.log main;
        error_log /data/logs/http-runner.alaxiaoyou.com-error.log error;
        client_max_body_size 1024M;
        location /
        {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_buffer_size 64k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_max_temp_file_size 512m;
        proxy_connect_timeout 1800;
        proxy_read_timeout    1800;
        proxy_send_timeout    1800;
        proxy_pass http://runner;
        #expires      -1;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    註冊用戶訪問:http://runner.a.com/api/register
    CentOS7安裝部署HttpRunnerManager接口自動化測試
    登錄後臺運維管理系統,可後臺管理數據:http://runner.a.com/admin
    域名放問不要用Https,要不然頁面顯示有問題,因內部分鏈接是走http的,如內部鏈接的CDN。
    HttpRunnerManager手冊操作說明,可參考HttpRunnerManager作者寫的:https://testerhome.com/topics/13295

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章