HttpRunnerManager 部署和使用技巧

HttpRunnerManager

Design Philosophy

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

Key Features

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

本地開發環境部署

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

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

    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'     # 郵箱密碼
  3. 安裝rabbitmq消息中間件,啓動服務,訪問:http://host:15672/#/ host即爲你部署rabbitmq的服務器ip地址 username:guest、Password:guest, 成功登錄便可nginx

    service rabbitmq-server start
  4. 修改:HttpRunnerManager/HttpRunnerManager/settings.py裏worker相關配置git

    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
  5. 命令行窗口執行pip install -r requirements.txt 安裝工程所依賴的庫文件github

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

    python manage.py makemigrations ApiManager #生成數據遷移腳本
        python manage.py migrate  #應用到db生成數據表
  7. 建立超級用戶,用戶後臺管理數據庫,並按提示輸入相應用戶名,密碼,郵箱。 如不需用,可跳過此步驟數據庫

    python manage.py createsuperuser
  8. 啓動服務,django

    python manage.py runserver 0.0.0.0:8000
  9. 啓動worker, 若是選擇同步執行並確保不會使用到定時任務,那麼此步驟可忽略json

    python manage.py celery -A HttpRunnerManager worker --loglevel=info  #啓動worker
        python manage.py celery beat --loglevel=info #啓動定時任務監聽器
        celery flower #啓動任務監控後臺
  10. 訪問:http://localhost:5555/dashboard 便可查看任務列表和狀態

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

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

生產環境uwsgi+nginx部署參考:https://www.jianshu.com/p/d6f9138fab7b

新手入門手冊

一、首先須要註冊一個新用戶,註冊成功後會自動跳轉到登陸頁面,正常登陸便可訪問頁面 註冊頁面
登陸頁面

二、登錄後默認跳轉到首頁,左側爲菜單欄,上排有快捷操做按鈕,當前只簡單的作了項目,模塊,用例,配置的統計 首頁

三、首先應該先添加一個項目,用例都是以項目爲維度進行管理, 注意簡要描述和其餘信息能夠爲空, 添加成功後會自動重定向到項目列表 新增項目

四、支持對項目進行二次編輯,也能夠進行篩選等,項目列表頁面能夠選擇單個項目運行,也能夠批量運行,注意:刪除操做會強制刪除該項目下全部數據,請謹慎操做 項目列表

五、當前項目能夠新增模塊了,以後用例或者配置都會歸屬模塊下,必須指定模塊所屬的項目,模塊列表與項目列表相似,故不贅述 新增模塊

六、新增用例,遵循HtttpRuunner腳本規範,能夠跨項目,跨模塊引用用例,支持拖拽排序,動態添加和刪減,極大地方便了場景組織, HttpRunner用例編寫很靈活,建議規範下編寫方式 新增用例01

新增用例02

新增用例03

新增用例04

七、新增配置,可定義全局變量,全局hook,公共請求參數和公共headers,通常可用於測試環境,驗證環境切換配置,具體用法參考HttpRunner手冊 新增配置

八、支持添加項目級別定時任務,模塊集合的定時任務,遵循crontab表達式, 模塊列表爲空默認爲整個項目,定時任務支持選擇環境和配置 添加任務
九、定時任務列表能夠對任務進行開啓或者關閉、刪除,不支持二次更改 任務列表

十、用例列表運行用例能夠選擇單個,批量運行,鼠標懸浮到用例名稱後會自動展開依賴的用例,方便預覽,鼠標懸浮到對應左邊序列欄會自動收縮,只能同步運行 用例列表

十一、項目和模塊列表能夠選擇單個,或者批量運行,能夠選擇運行環境,配置等,支持同步、異步選擇,異步支持自定義報告名稱,默認時間戳命名 模塊列表

十二、異步運行的用例還有定時任務生成的報告均會存儲在數據庫,能夠在線點擊查看,當前不提供下載功能 報告持久化

1三、高大上的報告(基於extentreports實現), 能夠一鍵翻轉主題哦 最終報告01

最終報告02

其餘

MockServer:https://github.com/yinquanwang/MockServer

相關文章
相關標籤/搜索