1. 源碼下載
github: https://github.com/HttpRunner/HttpRunnerManager
下載后放入項目目錄,結構如下:

2.依賴環境 根據根目錄requirements.txt文件安裝依賴,可以使用pip安裝,pip install -r requirements.txt
Django == 2.0.3
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
3.數據庫安裝,我安裝的是MYSQL 57版本,設置為utf-8編碼,創建相應HttpRunner數據庫,設置好相應用戶名、密碼,啟動mysql
4.修改源碼中settings.py的配置文件

5. rabbitmq消息中間件的安裝
可以參考博友的安裝文章:https://www.cnblogs.com/tiechui2015/p/10016106.html
啟動和關閉命令需要記住:打開sbin目錄,雙擊rabbitmq-server.bat
訪問http://localhost:15672
username:guest、Password:guest, 成功登陸即可
如下圖:

6.修改配置路徑目錄如下:修改:HttpRunnerManager/HttpRunnerManager/settings.py里BROKER_URL

7.到這里我們基本都安裝完成了。然后我們生成數據庫遷移腳本,這里如果之前未使用連接過數據庫,可能需要安裝pymysql庫,同樣采用pip安裝。
python manage.py makemigrations
然后執行python manage.py migrate 對應HttpRunner數據庫生成相應表結構
8.執行python manage.py createsuperuser 根據提示創建輸入用戶名,郵箱,密碼,用於admin后台管理,暫時不用可以先不創建。
9.執行python manage.py runserver啟動服務,后面可以接ip和端口號,如0.0.0.0:8000
注意點:以上這些python操作請切換到項目目錄下執行。
然后打開web:http://127.0.0.1:8000/api/register/ 注冊賬號后登錄平台


這里我已經添加了project module testcase,截圖如上,很漂亮有沒有。
10. 然后就是定時任務(也就是異步執行的task),我們需要使用celery,執行腳本:python manage.py celery -A HttpRunnerManager worker --loglevel=info 啟動worker
這里遇到了坑。總是會出現報錯。我是各種檢查,最后終於發現是tornado這個下面的web模塊中缺少asynchronous裝飾方法,這個是用來執行異步的關鍵。我各種百度都未查到此類問題,后面想到是不是這個模塊升級后改版了,然后我用pip給這個模塊降級,安裝4.x的版本,重試后問題解決。先前默認安裝了最新的版本6.0.1。
解決后啟動截圖:
[2019-03-20 18:55:02,383: WARNING/Worker-1] ?[32m?[47mINFO ?[0m ?[32mGenerated Html report: D:\Python36\Scripts\HttpRunnerManager-master\reports\1553079300.h
tml?[0m
[2019-03-20 18:55:02,385: WARNING/Worker-1] ?[32m?[47mINFO ?[0m ?[32mGenerated Html report: D:\Python36\Scripts\HttpRunnerManager-master\reports\1553079300.h
tml?[0m
[2019-03-20 18:55:02,399: WARNING/Worker-1] ?[32m?[47mINFO ?[0m ?[32mGenerated Html report: D:\Python36\Scripts\HttpRunnerManager-master\reports\1553079300.h
tml?[0m
[2019-03-20 18:55:02,399: WARNING/Worker-1] ?[32m?[47mINFO ?[0m ?[32mGenerated Html report: D:\Python36\Scripts\HttpRunnerManager-master\reports\1553079300.h
tml?[0m
[2019-03-20 18:55:04,603: INFO/MainProcess] Task ApiManager.tasks.module_hrun[5a3b0c27-a930-4777-98dd-c4f7683c8ac6] succeeded in 4.5939999999973224s: None
直到我啟動work,RabbitMQ中間件才有數據,因為定時任務給到中間件后,中間件找不到work服務,阻塞在那里。
11. python manage.py celery beat --loglevel=info 開啟定時任務配置
D:\Python36\Scripts\HttpRunnerManager-master>python36 manage.py celery beat --loglevel=info
celery beat v3.1.26.post2 (Cipater) is starting.
__ - ... __ - _
Configuration ->
. broker -> amqp://guest:**@localhost:5672//
. loader -> celery.loaders.app.AppLoader
. scheduler -> djcelery.schedulers.DatabaseScheduler
. maxinterval -> now (0s)
[2019-03-20 18:23:20,603: INFO/MainProcess] Writing entries (0)...
[2019-03-20 18:23:25,951: INFO/MainProcess] Writing entries (0)...
[2019-03-20 18:26:29,964: INFO/MainProcess] Writing entries (1)...
直至現在,平台基本已經完全通暢,可以開始自動化接口測試。后續將平台搭建到server上去,教程再更新。
Linux服務器部署教程請參考另一篇博客:https://www.cnblogs.com/Sandy-1128/p/HttpRunner-sandy-0323.html
