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、訪問
-
訪問:http://localhost:5555/dashboard 即可查看任務列表和狀態
-
瀏覽器輸入:http://127.0.0.1:8000/api/register/ 注冊用戶,開始盡情享用平台吧
-
瀏覽器輸入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文件郵箱信息修改為剛剛設置的郵箱名稱及授權碼;再次重啟服務,運行用例,就會收到郵件;

