基於HttpRunner的接口自動化測試平臺HttpRunnerManager(二)

https://github.com/HttpRunner/HttpRunnerManager前端

HttpRunnerManager

Design Philosophy

基於HttpRunner的接口自動化測試平臺: HttpRunnerdjcelery and Django_. HttpRunner手冊: http://cn.httprunner.org/python

Key Features

  • 項目管理:新增項目、列表展現及相關操做,支持用例批量上傳(標準化的HttpRunner json和yaml用例腳本)
  • 模塊管理:爲項目新增模塊,用例和配置都歸屬於module,module和project支持同步和異步方式
  • 用例管理:分爲添加config與test子功能,config定義所有變量和request等相關信息 request能夠爲公共參數和請求頭,也可定義所有變量
  • 場景管理:能夠動態加載可引用的用例,跨項目、跨模快,依賴用例列表支持拖拽排序和刪除
  • 運行方式:可單個test,單個module,單個project,也可選擇多個批量運行,支持自定義測試計劃,運行時能夠靈活選擇配置和環境,
  • 分佈執行:單個用例和批量執行結果會直接在前端展現,模塊和項目執行可選擇爲同步或者異步方式,
  • 環境管理:可添加運行環境,運行用例時能夠一鍵切換環境
  • 報告查看:全部異步執行的用例都可在線查看報告,可自主命名,爲空默認時間戳保存,
  • 定時任務:可設置定時任務,遵循crontab表達式,可在線開啓、關閉,完畢後支持郵件通知
  • 持續集成:jenkins對接,開發中。。。

對HttpRunnerManager的學習作個記錄....環境部署都可在github中查看。記錄部署中存在改動的地方。

本地開發環境部署

拉代碼下載mysql

ubuntu@MITTE-SERVER:/opt$ git clone https://github.com/HttpRunner/HttpRunnerManager.git
Cloning into 'HttpRunnerManager'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 3313 (delta 0), reused 0 (delta 0), pack-reused 3312
Receiving objects: 100% (3313/3313), 36.25 MiB | 971.00 KiB/s, done.
Resolving deltas: 100% (2154/2154), done.
Checking connectivity... done.git

 

 

  • 安裝mysql數據庫服務端(推薦5.7+),並設置爲utf-8編碼,建立相應HttpRunner數據庫,設置好相應用戶名、密碼,啓動mysqlgithub

在MySQL安裝目錄的 bin 目錄下執行命令:
mysqld --initialize --console
執行完成後,會打印 root 用戶的初始默認密碼,好比:sql

2018-06-15T08:35:07.750836Z 0 [System] [MY-013169] [Server] G:\Tools\mysql\mysql-8.0.11-winx64\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 9716
2018-06-15T08:35:22.138130Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Lf#HW/=jZ1g:
2018-06-15T08:35:30.402889Z 0 [System] [MY-013170] [Server] G:\Tools\mysql\mysql-8.0.11-winx64\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed數據庫

注意!執行輸出結果裏面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E 其中root@localhost:後面的「rI5rvf5x5G,E」就是初始密碼(不含首位空格)。在沒有更改密碼前,須要記住這個密碼,後續登陸須要用到。
要是你手賤,關快了,或者沒記住,那也沒事,刪掉初始化的 datadir 目錄,再執行一遍初始化命令,又會從新生成的。固然,也可使用安全工具,強制改密碼,用什麼方法,本身隨意。django

 

在MySQL安裝目錄的 bin 目錄下執行命令:
mysqld --install [服務名]
後面的服務名能夠不寫,默認的名字爲 mysql。固然,若是你的電腦上須要安裝多個MySQL服務,就能夠用不一樣的名字區分了,好比 mysql5 和 mysql8。
安裝完成以後,就能夠經過命令net start mysql啓動MySQL的服務了。經過命令net stop mysql中止服務。經過命令sc delete MySQL/mysqld -remove卸載 MySQL 服務json

 

在MySQL安裝目錄的 bin 目錄下執行命令:
mysql -u root -p
這時候會提示輸入密碼,記住了上面第3.1步安裝時的密碼,填入便可登陸成功,進入MySQL命令模式ubuntu

在MySQL中執行命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
修改密碼,注意命令尾的;必定要有,這是mysql的語法

 

到此,安裝部署就完成了。官方說測試速度MySQL8比5快兩倍


mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+------------------+-----------+-------------------------------------------+
| mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)


管理員root的host是localhost,表明僅限localhost登陸訪問。若是要容許開放其餘ip登陸,則須要添加新的host。若是要容許全部ip訪問,能夠直接修改爲「%」

建立用戶:

CREATE USER 'lamw'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';

#(須要注意:mysql8.0加密方式修改了)
#檢查用戶

select user, host, plugin, authentication_string from user\G;

受權遠程數據庫

#受權全部權限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#受權基本的查詢修改權限,按需求設置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';

查看用戶權限
show grants for 'xxh'@'%';


例如:新建用戶

CREATE USER 'lamw'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

 

 

登陸的時候 ip地址用localhost 能夠用root登陸,填寫本機ip沒法登陸,不知是啥問題致使
密碼123456

 

 

 

 

 

  • 修改:HttpRunnerManager/HttpRunnerManager/settings.py裏DATABASES字典和郵件發送帳號相關配置

    1.      DATABASES = {
               'default': {
               'ENGINE': 'django.db.backends.mysql',
               'NAME': 'HttpRunner',  # 新建數據庫名
               'USER': 'root',  # 數據庫登陸名
               'PASSWORD': 'lcc123456',  # 數據庫登陸密碼
               'HOST': '127.0.0.1',  # 數據庫所在服務器ip地址
               'PORT': '3306',  # 監聽端口 默認3306便可
           }
       }
      
       EMAIL_SEND_USERNAME = 'username@163.com'  # 定時任務報告發送郵箱,支持163,qq,sina,企業qq郵箱等,注意須要開通smtp服務
       EMAIL_SEND_PASSWORD = 'password'     # 郵箱密碼

       

  • 安裝rabbitmq消息中間件,啓動服務,訪問:http://host:15672/#/ host即爲你部署rabbitmq的服務器ip地址 username:guest、Password:guest, 成功登錄便可
service rabbitmq-server start 小編這邊執行這句的時候報錯了,其實安裝好rabbitmq直接能夠登陸了

 

安裝rabbitMQ以前,須要先安裝Erlang 
http://www.erlang.org/downloads

 

1.安裝Erlang
因此在安裝rabbitMQ以前,須要先安裝Erlang 。
小編使用的是otp_win64_20.3 ,須要其餘版本或者32位系統的,能夠去官網下載。
所有點擊「下一步」就行
有的選擇其餘的安裝方式,可能須要添加一下系統環境變量(正常安裝的也要檢查下):

 

 

(1):下載erlang,緣由在於RabbitMQ服務端代碼是使用併發式語言erlang編寫的,下載地址:http://www.erlang.org/downloads,雙擊.exe文件進行安裝就好,安裝完成以後建立一個名爲ERLANG_HOME的環境變量,其值指向erlang的安裝目錄,同時將%ERLANG_HOME%\bin加入到Path中,最後打開命令行,輸入erl,若是出現erlang的版本信息就表示erlang語言環境安裝成功;
2.安裝RabbitMQ
下載運行rabbitmq-server-3.7.6 ,須要其餘版本或者32位系統的,能夠去官網下載。
依舊能夠不改變默認進行安裝。
須要注意:默認安裝的RabbitMQ 監聽端口是5672

3.配置
激活 RabbitMQ's Management Plugin
使用RabbitMQ 管理插件,能夠更好的可視化方式查看Rabbit MQ 服務器實例的狀態。
打開命令窗口:
輸入命令:
"G:\Tools\rabbitMQ\RabbitMQ Server\rabbitmq_server-3.7.6\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
執行這個命令的時候一直報錯,關閉cmder從新打開就能夠了

 

 

帳號密碼均是guest

 

  • 修改:HttpRunnerManager/HttpRunnerManager/settings.py裏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地址
    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                      #小編並未對這段代碼作修改

 

  • 在Python36\Scripts目錄下命令行窗口執行pip install -r requirements.txt 安裝工程所依賴的庫文件

    (須要在G:\Tools\軟件安裝包\Httprunner\HttpRunnerManager-master\HttpRunnerManager-master目錄下 複製requirements.txt 到G:\Tools\Python\Python36\Scripts目錄下,PS:這裏須要注意的是 小編一開始用3.7,各類報錯,因此建議是用3.6 )

 

  •  命令行窗口切換到HttpRunnerManager目錄 生成數據庫遷移腳本,並生成表結構

 

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

若是遇到

報:Django migrate No changes detected
去數據庫查看沒有生成相應表格, 刪除migrations/ __pycache__的 __pycache__文件夾
而後執行

python manage.py migrate

 

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

  • 啓動服務
  python manage.py runserver 0.0.0.0:8000

  • 啓動worker, 若是選擇同步執行並確保不會使用到定時任務,那麼此步驟可忽略
 python manage.py celery -A HttpRunnerManager worker --loglevel=info  #啓動worker
    python manage.py celery beat --loglevel=info #啓動定時任務監聽器
    celery flower #啓動任務監控後臺

 

 

 

未完待續

相關文章
相關標籤/搜索