基於 HttpRunner + Django + Vue + Element UI 的介面自動化測試平臺,生產可用

geekbing發表於2024-03-24

平臺簡介

基於 HttpRunner + Django + Vue + Element UI 的介面自動化測試平臺,生產可用。

此外,非常感謝 花菜。沒有 AnotherFasterRunner 就不會有 LunarLink :)

技術棧

  • [x] 🎨 Django
  • [x] 🎶 Django Rest framework
  • [x] 🎉 Vue.js
  • [x] 🎃 Element UI
  • [x] 🏐 django-celery-beat(定時任務)
  • [x] 🎲 Nginx(反向代理,https 配置等)
  • [x] 👟 HttpRunner(測試用例執行引擎)
  • [x] 🔒 RabbitMQ
  • [x] 🚚 Redis
  • [x] 💎 MySQL
  • [x] ⛏ Docker

功能模組

  • 登入:賬號認證、使用者管理、許可權管理
  • 專案管理:新增專案、列表展示及相關操作,支援專案看板,顯示專案每日、每週、每月不同維度資料
  • 專案概覽:專案基本資訊,API、測試用例、任務執行總覽,每日明細
  • API 模板:一個 API 對應後端一個 HTTP 介面,API 可以單獨執行,也可以作為一個用例步驟,支援 API 分組、引數提取、資料斷言、變數引用、前後置鉤子函式、介面除錯、日誌顯示
  • 介面匯入:支援同步 YApi(以 YApi 做媒介間接支援 Swagger、Postman、Har),無需手動錄入介面
  • 測試用例:支援分組管理,由一個或多個 API 組成,支援關聯介面的動態引數傳遞,不區分場景用例和單介面用例,支援同步、非同步批次執行,生成測試報告
  • 配置管理:自定義不同配置的請求 base_url 地址,公共請求頭引數、區域性變數、前後置鉤子函式、引數化內容,API 和用例可以選擇不同配置執行
  • 全域性變數:定義變數供 API 使用,變數值也可以引用驅動程式碼中的函式,通用賬號、秘鑰可以定義在此處
  • 驅動程式碼:支援 Python 指令碼,定義前後置鉤子函式、輔助函式可以輕鬆實現請求引數簽名,加密和解密響應等功能
  • 定時任務:可設定定時任務,遵循 crontab 表示式,可線上開啟、關閉,用例執行支援序列、並行,完成後測試報告推送企業微信
  • 歷史報告:儲存定時、除錯、非同步等不同型別的測試報告,可線上檢視、篩選、刪除,還可檢視他人測試報告

線上體驗

👩‍👧‍👦 生產地址:http://47.119.28.171:8081

  • 體驗賬號:test
  • 密碼:test2023

準備工作

Python >= 3.9.5 (推薦3.9.x版本)
nodejs >= 16.0 (推薦最新)
Mysql >= 5.7.0 (推薦5.7.x版本)
RabbitMQ >= 3.x-management(預設需要,推薦最新版)
Redis >= 6.2.6

前端 ♝

建議使用 yarn,專案提供了yarn.lock,使用其他包管理器,容易出現版本依賴問題。

# 克隆專案
git clone https://github.com/tahitimoon/LunarLink.git

# 進入專案目錄
cd LunarLink/frontend

# 安裝依賴
yarn install --registry=https://registry.npmmirror.com

# 啟動服務
yarn start
# 瀏覽器訪問 http://127.0.0.1:8888
# config/index.js 檔案可配置啟動埠等引數
# config/dev.env.js 檔案可配置後端介面地址
# config/prod.env.js 檔案保持不變
# 構建生產環境
# yarn build

後端 💈

# 克隆專案
git https://github.com/tahitimoon/LunarLink.git

# 進入專案目錄
cd LunarLink/backend

# 將.env.example檔案重新命名為.env 並配置相關引數
mv .env.example .env

# 安裝依賴環境
pip3 install -r requirements.txt

# 執行遷移命令:
python3 manage.py makemigrations
python3 manage.py migrate

# 建立管理員使用者
python3 manage.py createsuperuser

# 啟動專案
python3 manage.py runserver

訪問專案

瀏覽器開啟:
http://127.0.0.1:8888
使用者/密碼:管理員使用者/密碼
介面文件地址:
http://127.0.0.1:8000/swagger/

開啟定時/非同步任務

# 啟動celery,在控制檯執行
celery -A backend worker -B --loglevel=info

演示圖 ✅

相關文章