HttpRunnerManager(一)--安裝


1、相關地址

(1)中文文檔介紹:https://cn.httprunner.org/

(2)相關安裝包下載地址:鏈接:https://pan.baidu.com/s/13SP1mFsNKrLK0snRWWIyxA    提取碼:prip 

(3)源碼下載地址:https://github.com/HttpRunner/HttpRunnerManager

(4)參考地址:https://www.cnblogs.com/tiechui2015/p/10017801.html

2、首先安裝python 3.5版本,版本太高,HttpRunner運行會報錯;--自行百度安裝;

3、下載源碼:https://github.com/HttpRunner/HttpRunnerManager  放在D盤根目錄下,並解壓;

4、安裝mysql數據庫,安裝navicat圖形界面,創建HttpRunner數據庫,設置為utf-8編碼,設置好相應用戶名、密碼;

5、修改HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典相關配置;

6、rabbitmq安裝,參考:https://www.cnblogs.com/tiechui2015/p/10017801.html

7、在rabbitmq文件夾,打開sbin目錄,雙擊rabbitmq-server.bat;訪問http://localhost:15672 ,username:guest、Password:guest, 成功登陸即可

8、修改:HttpRunnerManager/HttpRunnerManager/settings.py里BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//'或者將127.0.0.1替換成host

 

9、安裝工程所依賴的庫文件-requirements.txt

打開cmd
cd D:\HttpRunnerManager-master\HttpRunnerManager-master;
pip install -r requirements.txt;

requirements.txt詳見下面:
Django == 2.0.3
PyYAML == 3.12
requests == 2.18.4
eventlet == 0.22.1
HttpRunner == 1.5.8
django-celery == 3.3.0
flower == 0.9.3
dwebsocket == 0.4.2
paramiko == 2.4.1
mysqlclient == 1.3.13

  此時可能提示mysqlclient報錯,進行下面步驟10;

10、打開鏈接:https://pan.baidu.com/s/13SP1mFsNKrLK0snRWWIyxA    提取碼:prip 下載文件,解壓mysqlclient;

將mysqlclient-1.3.12-cp35-cp35m-win_amd64.whl拷貝到python的根目錄下
打開cmd
cd python根目錄;
pip install mysqlclient-1.3.12-cp35-cp35m-win_amd64.whl;
pip install pymysql;
cd python根目錄下的lib-site packages-django-db-backends-mysql-打開__init__.py;
填寫下面兩句並保存
import pymysql
pymysql.install_as_MySQLdb()

 

11、生成數據庫遷移腳本,生成表結構

打開cmd,進入D:\HttpRunnerManager-master\HttpRunnerManager-master;
python manage.py makemigrations ApiManager #生成數據遷移腳本
python manage.py migrate  #應用到db生成數據表

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

 python manage.py createsuperuser

13、啟動服務

python manage.py runserver 0.0.0.0:8000

14、啟動worker, 如果選擇同步執行並確保不會使用到定時任務,那么此步驟可忽略

python manage.py celery -A HttpRunnerManager worker --loglevel=info  #啟動worker
python manage.py celery beat --loglevel=info #啟動定時任務監聽器
celery flower #啟動任務監控后台

 注意:運行第一條時可能報錯,進入python根目錄,lib-site packages-djcelery-management-commands-celery.py,將options注釋掉,重新打開服務

運行第二條時,可能出現這樣的錯誤:

解決步驟:

 15、訪問

  1. 訪問:http://localhost:5555/dashboard 即可查看任務列表和狀態

  2. 瀏覽器輸入:http://127.0.0.1:8000/api/register/ 注冊用戶,開始盡情享用平台吧

  3. 瀏覽器輸入http://127.0.0.1:8000/admin/ 輸入步驟12設置的用戶名、密碼,登錄后台運維管理系統,可后台管理數據

16、一睹為快

前端界面:

后端界面:

rabbitMQ界面:

 

 Flower監控界面:

后台服務運行情況

這幾個服務不能關閉!!!!

 

注意:

(1)后台管理界面,點擊任務監控,提示不能訪問!解決方法:在代碼區右鍵項目HttpRunnerManager-master,find in path,搜索192.168.91.45.所有文件都改為127.0.0.1。

(2)郵箱收不到郵件,在settings.py設置郵箱,且開啟相應郵箱的SMTP服務,郵箱密碼為設置的SMTP的密碼。

查看服務報錯,說明是SMTP沒有開啟或者密碼設置不對;

步驟1:以QQ郵箱為例,在QQ郵箱設置-賬戶-找到POP3等全部開啟,用短信驗證;

步驟2:用outlook連接測試,或者其他客戶端,打開文件-添加賬戶-手動設置-POP或IMAP-按圖示填寫信息--其他設置--點擊測試賬戶設置,如果出現發來的郵件,設置成功;

步驟3:按照下面修改emails.py文件,並運行,記得把報告路徑及名稱改為本地(不然會報找不到文件錯誤,第一個參數寫自己上邊設置授權碼的郵箱,后面一個參數是報告存在的路徑及名稱),同時smtp_server修改為smtp.qq.com,如果收到郵件,則成功;(詳見下面代碼)

 

import io
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

#from HttpRunnerManager.settings import EMAIL_SEND_USERNAME, EMAIL_SEND_PASSWORD

EMAIL_SEND_USERNAME = 'XXXXX@qq.com'  # 定時任務報告發送郵箱,支持163,qq,sina,企業qq郵箱等,注意需要開通smtp服務
EMAIL_SEND_PASSWORD = 'XXXXXXX'     # 郵箱密碼

def send_email_reports(receiver, html_report_path):
    if '@sina.com' in EMAIL_SEND_USERNAME:
        smtp_server = 'smtp.sina.com'
    elif '@163.com' in EMAIL_SEND_USERNAME:
        smtp_server = 'smtp.163.com'
    else:
        smtp_server = 'smtp.qq.com'   #這里要修改

    subject = "接口自動化測試報告"

    with io.open(html_report_path, 'r', encoding='utf-8') as stream:
        send_file = stream.read()

    att = MIMEText(send_file, "base64", "utf-8")
    att["Content-Type"] = "application/octet-stream"
    att["Content-Disposition"] = "attachment;filename = TestReports.html"

    body = MIMEText("附件為定時任務生成的接口測試報告,請查收,謝謝!", _subtype='html', _charset='gb2312')

    msg = MIMEMultipart('related')
    msg['Subject'] = subject
    msg['from'] = EMAIL_SEND_USERNAME
    msg['to'] = receiver
    msg.attach(att)
    msg.attach(body)

    smtp = smtplib.SMTP()
    smtp.connect(smtp_server)
    smtp.starttls()
    smtp.login(EMAIL_SEND_USERNAME, EMAIL_SEND_PASSWORD)
    smtp.sendmail(EMAIL_SEND_USERNAME, receiver.split(','), msg.as_string())
    smtp.quit()


if __name__ == '__main__':
    send_email_reports('XXXXXXX@qq.com', 'D:\\HttpRunnerManager-master\\HttpRunnerManager-master\\reports\\1558953180.html')
#第一個參數是剛剛設置授權碼的郵箱,第二個參數是本地路徑下的任意文件,只要存在就行,隨意設置,這里會作為附件顯示在郵箱中

 

步驟四:將上面emails.py文件的修改撤銷;

步驟五:將settings.py文件郵箱信息修改為剛剛設置的郵箱名稱及授權碼;再次重啟服務,運行用例,就會收到郵件;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM