HttpRunnerManager V2.0此項目是一個基於HttpRunner的接口自動化測試平台,同時HttpRunner 是一款面向 HTTP(S) 協議的通用測試框架,只需編寫維護一份 YAML/JSON
腳本,即可實現自動化測試、性能測試、線上監控、持續集成等多種測試任務。
新版本主要增加了定時任務,異步執行,報告持久化、日志保存以及數據類型支持,QQ群歡迎提問:628448476。
本文將自行進行安裝的步驟進行整理發布,這是在網絡參考一些大神發布的文章,同時總結了一些新的問題。
一、准備環境和安裝包
主要包括:CentOS7.6,HttpRunnerManager V2.0,mysql5.7.26,python3.6.4,Django2.1.2,rabbitmq-server-3.6.8(為了避免兼容問題,強烈建議版本盡可能相同,不同時盡量選更高版本。)
CentOS建議不要用6.X,會出現各種難以解決的問題,一些安裝包的很難解決依賴包和相應版本問題,建議重新用centos7X版本。
下載可自行百度,個人在此提供以下包下載鏈接。
CentOS:https://mirrors.edge.kernel.org/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso(安裝教程:https://www.cnblogs.com/clsn/p/8338099.html#auto_id_22)
HttpRunnerManager V2.0:https://github.com/samasword/HttpRunnerManager或https://github.com/HttpRunner/HttpRunnerManager
其他一些具體配置時提供了下載方法。
二、修改項目設置:
下載的包如果不是zip格式,建議解壓后重新壓縮成zip,再上傳到centos服務器,用yum install -y unzip zip下載zip解壓工具,然后用unzip HttpRunnerManager.zip在centos下進行解壓。
1、打開下載后解壓的源碼包,進入HttpRunnerManager/HttpRunnerManager文件夾下,找到 settings.py打開修改。(修改可在window修改后壓縮上傳,也可上傳后在centos上用vi修改。)
修改:HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典和郵件發送賬號相關配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HttpRunner', # 新建數據庫名,自己在數據庫新建的一個'HttpRunner'
'USER': 'root', # 安裝的數據庫登錄名
'PASSWORD': 'lcc123456', # 安裝的數據庫登錄密碼
'HOST': '127.0.0.1', # 數據庫所在服務器ip地址(虛擬機就是虛擬機ip)
'PORT': '3306', # 監聽端口 默認3306即可
}
}
再修改郵箱配置代碼:
EMAIL_SEND_USERNAME = 'username@163.com' # 郵箱地址,定時任務報告發送郵箱,支持163,qq,sina,企業qq郵箱等,注意需要在郵箱設置中開通smtp服務
EMAIL_SEND_PASSWORD = 'password' # 郵箱的登錄密碼
最后修改worker相關配置:
djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' # 127.0.0.1即為rabbitmq-server所在服務器ip地址(比如我的虛擬機192.168.31.16,那就填下這個ip,端口無需修改)
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 7200 # celery任務執行結果的超時時間,
CELERYD_CONCURRENCY = 10 # celery worker的並發數 也是命令行-c指定的數目 根據服務器配置實際更改 默認10
CELERYD_MAX_TASKS_PER_CHILD = 100 # 每個worker執行了多少任務就會死掉,我建議數量可以大一些,默認100
還要修改HttpRunnerManager目錄下requirements.txt:
將Django == 2.0.3改為Django == 2.1.2,以及刪除mysqlclient == 1.3.12
因為后續會安裝這個版本的Django2.1.2,同時mysqlclient需要手動安裝
2、安裝數據庫(建議cd ../usr/loal后安裝軟件到根目錄的/usr/loal目錄下)
個人覺得可以在linux中/usr/loal/目錄下直接用:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm進行下載安裝(沒有此命令,可以yum isntall wget或百度linux下wget安裝方法)
具體操作參考這篇博客,個人感覺最詳細和合理:https://www.cnblogs.com/dengshihuang/p/8029372.html
3、安裝python(建議cd ../usr/loal后安裝軟件到根目錄的/usr/loal目錄下)
a.下載可以在linux中/usr/loal/直接用:wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz ,然后解壓,安裝
b.接下來一步步按以下命令執行
tar -xvf Python-3.6.4.tgz
cd Python-3.6.4
./configure --with-ssl
yum install libffi-devel openssl-devel zlib* -y
make all && make install
(如果make安裝時出現zipimport.ZipImportError: can't decompress data; zlib not availablemake: *** [install] 錯誤 1)請使用以下命令解決:
yum install zlib*然后在輸入y重新執行:make all && make install 即可)
make clean
make distclean
/usr/local/bin/python3 -V
輸入上一條命令后就會顯示版本3.6.4
c.接下來建立軟連接指向到當前系統默認python命令的bin目錄,讓系統使用新版本python 輸入以下命令
(另一種方法:終端輸入sudo vi ~/.bashrc
輸入i 在最下面加上alias python='python3'
Esc :wq 保存最后在終端輸入source ~/.bashrc
)
mv /usr/bin/python /usr/bin/python2.7
(如果出現[root@YlfCenterOS: Python-3.6.4]# mv /usr/bin/python /usr/bin/python2.7 mv: "/usr/bin/python" 與"/usr/bin/python2.7" 為同一文件
那么執行:rm -rf /usr/bin/python,再執行下面的ls命令就行)
ln -s /usr/local/bin/python3.6 /usr/bin/python
再輸入:python -V,即可查看當前默認python版本
d.由於安裝python3.6覆蓋了系統的2.7,需要更改配置文件才能用yum
修改yum配置文件vi /usr/bin/yum 和vi /usr/libexec/urlgrabber-ext-down這兩個文件
把兩個文件的頭部的#!/usr/bin/python改成#!/usr/bin/python2.7 //改為之前的老版本號
保存退出,yum即可正常使用。如若有其他命令、軟件不能正常使用,仿照yum配置文件的修改方法,修改其配置文件即可。
e.更新pip,執行命令:python -m pip install --upgrade pip 然后用pip -V 查看版本是不是19.x.x了。
f.更新setuptools,執行命令: pip install --upgrade setuptools
4、安裝Django,直接使用pip3進行安裝:
pip3 install Django==2.1.2,安裝后可進行驗證,輸入python,再import后打印版本。
如果安裝失敗,可以進行以下嘗試;
wget https://www.djangoproject.com/download/2.1.2/tarball/ --no-check-certificate
tar xzvf Django-2.1.2.tar.gz # 解壓下載包
cd Django-2.1.2 # 進入 Django 目錄
python setup.py install # 執行安裝命令
5、安裝RabbitMQ
具體參考:https://www.cnblogs.com/fxcity/p/11041994.html或者https://testerhome.com/notes/2164
service rabbitmq-server start
6、安裝mysqlclient,執行命令
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
pip3 install mysqlclient 或者 yum install mysqlclient
說明:上述教程不能保證百分百無問題,遇到問題可以自行百度或評論或發信息至我郵箱835393537@qq.com
有問題把報錯的提示復制一兩行進行百度或谷歌搜索解決。
三、編譯運行
1、在安裝RabbitMQ后,確定該服務已啟動,確定數據庫mysql服務和RabbitMQ服務處於啟動狀態。
2、在CentsOS中進入的源碼包文件夾HttpRunnerManager下,並確定當前文件夾下是有requirements.txt文件的。
然后執行:pip install -r requirements.txt
3、執行:python manage.py makemigrations ApiManager
4、創建超級用戶,執行:python manage.py createsuperuser 后台管理數據庫(地址:http://192.168.31.16:8000/admin/),並按提示輸入相應用戶名,密碼,郵箱。 如不需用,可跳過此步驟
5、開啟服務,python manage.py runserver 0.0.0.0:8000(ip必須為0.0.0.0,端口8000可自行修改,訪問時必須帶設置的端口)開啟成功如下圖。
說明:Ip為0.0.0.0網上說時為了局域網內其他主機有權限訪問,訪問時地址是centos的ip加開啟服務時設置的端口。
例如我的centos ip是192.168.31.16,則可以通過以下地址訪問相關服務。
相關地址:http://192.168.31.16:8000/api/login/(登錄)
http://192.168.31.16:8000/api/register/(注冊)
http://192.168.31.16:8000/admin/(后台)
特此說明下:服務正常啟動后,centos虛擬機是服務器,這是主機瀏覽器還是無法訪問的,必須再創建一個window虛擬機,在windows虛擬機中訪問,
具體原因應該是局域網網絡問題,暫時沒找到解決方案。后續有消息會更新或加在評論區。也望各位指正和提醒一些問題的解決方法。
網上說無法訪問可嘗試關閉服務器和本機防火牆試試。
補充:本人win10主機,后經嘗試,可以這樣使主機瀏覽器訪問HttpRunnerManager,在防火牆中設置{容許應用通過防火牆-然后選擇你訪問的瀏覽器的.exe文件,然后輸入地址就可以訪問了。}
四、問題補充
1、 后續這個項目具體使用方法參考社區:https://testerhome.com/topics/13295(實際操作)
2、參考鏈接:
1、https://testerhome.com/topics/18498
2、https://www.cnblogs.com/dengshihuang/p/8029372.html
3、https://testerhome.com/notes/2164