生活随笔
收集整理的這篇文章主要介紹了
开源接口测试平台BTest
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BTest platform
前言
BTest是一個接口測試平臺, 能幫助用戶高效快捷地完成接口自動化用例的開發, 覆蓋較為復雜的流程接口場景. 它是我個人業余時間開發的, 難免有不少BUG. 類似這樣的平臺, 網上已經有很多, 那為什么還要開發這個呢.
在此之前, 實際工作中我基于開源項目HttpRunnerManager做了一些補充性和優化性的二次開發, 漸漸有了自己寫個測試平臺的想法: 一是為了分享自己的經驗和想法,希望能幫助到測試人員更有效的完成工作;二是實踐自己的想法, 當是練手.
介紹
本平臺基于django restframwork和vue+iview開發, 驅動框架使用httprunner(1.5.8)
強烈建議使用平臺前先了解httprunner的基本用法
項目地址: https://gitee.com/scu-zrb/interface_test_platform/tree/master
平臺特性
測試管理:按項目-模塊-用例的層級管理,均可批量運行用例 用例管理:實現嵌套引用,支持快速調試,以樹型展示接口響應數據,并可一鍵提取結果 定時任務:可編輯任務,樹型展示用例,方便選擇;支持定時和手動觸發任務 測試報告:包括任務概況、用例詳情和top10錯誤表等內容,簡潔地展示任務情況 環境管理:保存環境相關的基礎數據,便于環境切換,支持python數據類型,支持在線編輯 參數化變量:數據量少時可在用例中定義;數據量大時可在文件中定義,支持在線編輯 mock管理:mock數據按接口-場景的層級管理,均支持獨立啟/禁用 全局變量:方便定義全局通用數據
win開發環境搭建
一、項目結構
項目結構
目錄說明: 前端代碼放在后端代碼根目錄中
二、前端環境
安裝node.js/npm并配置環境 配置淘寶鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
安裝vue腳本架
cnpm install --global vue-cli
cd到frontend目錄
cnpm install
運行前端
npm run dev
三、后端環境
安裝mysql,創建數據庫dbname,設置用戶名、密碼,啟動mysql 修改:AutoTest/settings.py里DATABASES字典和郵件配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'dbname', # 數據庫名'USER': 'root', # 用戶名'PASSWORD': '123456', # 密碼'HOST': '127.0.0.1', # 數據庫ip'PORT': '3306', # 端口默認3306即可}
}
EMAIL_SERVER = 'smtp.qq.com' # 郵箱服務器
EMAIL_PORT = 465 # 郵箱服務器端口
EMAIL_SENDER = '123456789@qq.com' # 發件人
EMAIL_PASSWORD = '' # 發件人密碼
安裝erlang和rabbitmq,服務是默認啟動的,訪問地址 http://localhost:15672/ 默認用戶名/密碼:guest
# 如果沒啟動使用下面命令
net start RabbitMQ
安裝python3(本人使用3.7,與celery3.x版本存在沖突命名沖突,需要手動修改celery;或者使用py3.6,可以先參考第7點) 創建虛擬環境(看需要)
python -m venv venvName
venvName/Scripts/activate.bat
安裝三方庫
pip install -r require.txt
更新三方庫(celery和httprunner)***(必須操作)***
# kumbo庫中使用了保留關鍵字async,與python3.7存在沖突,worker無法運行.
考慮下面三種方式:
1.py<=3.6,則不需要修改任務celery相關內容
-----------------------------------------------------------
2.py>=3.7,手動修改kumbo.async包名,再修改celery中相關引用項(未修改運行會報錯,挨個改)
-----------------------------------------------------------
3.py>=3.7,命令升級celery庫(升到4.x,不確定celery beat任務實時更新是否有效,未驗證):
pip install --upgrade https://github.com/celery/celery/tarball/master
-----------------------------------------------------------# 更新httprunner,把工程根目錄下httprunner_update目錄的文件全部替換到當前環境三方包httprunner目錄下,對1.5.8版本httprunner做了幾處優化.
1.引用函數時參數可以使用python多數數據類型
詳情見 https://www.jianshu.com/p/2b83c1216f57
-----------------------------------------------------------
2.結果提取失敗可返回用戶定義的默認值
詳情見 https://www.jianshu.com/p/c31a803f1f6a
解壓phantomjs, 配置環境變量, 命令行輸入phantomjs不報錯即可 安裝jdk,為了運行mock服務,如不需要mock服務可跳過 下載最新版本moco.jar到工程根目錄,新命令行切換到工程根目錄,運行服務
java -jar moco-runner-X.X.X-standalone.jar http -p 8899 -c mock_data/settings.json
切換到工程根目錄(manage.py所在目錄)
python manage.py makemigrations # 生成數據遷移腳本
python manage.py migrate # 創建表
啟動后端服務(端口自定義,修改后前端也要配置frontend/src/api/index.js)
python manage.py runserver 9999
新命令行切換到工程根目錄, 分別啟動worker、beat、flower
celery -A AutoTest worker -l info #啟動worker
celery -A AutoTest beat -l info #啟動任務監聽
# 上面兩命令可以合并: celery -A AutoTest worker -l info -B
celery flower #啟動任務后臺
訪問:http://localhost:5555/dashboard 即可查看任務列表和狀態 平臺地址: http://127.0.0.1:8080/ django后臺是否需要看自己情況
功能介紹
注冊新用戶,成功后自動登錄跳轉,前臺只能注冊為普通用戶.而管理員用戶可以通過admin后臺創建或修改.
首頁為數據面板,菜單按測試管理-數據管理-報告管理,劃為三個模塊
平臺按項目-模塊-用例的層級管理,要依次創建對應的條目
多數模塊都提供了搜索欄
項目/模塊/用例均提供了批量運行的方式, 而用例也可以單獨運行和快速調試
debugtalk頁面, 為每個項目綁定一份自定義函數或變量(下版本改為多項目共用debugtalk), 可在線編輯, 遵循python語法.
用例嵌套引用/快速調試/結果一鍵提取
添加及觸發任務
數據管理, 提供多種形式保存用例數據, 做到數據與用例分離的目的
MOCK服務基于moco運行
測試報告及郵件
下版本待實現
增加二級模塊; 項目使用目錄結構管理(項目-模塊-二級模塊-用例) celery分布式并發是以任務為執行單位的,如設定的任務用例數量過大,則無法發布分布式的優勢,下版本將對過大的任務進行拆分,可真正發揮分布式并發的優勢 用例重試機制 任務中錯誤用例一鍵重試 用例草稿/回收站 自動化文字用例與腳本關聯及場景覆蓋率統計
總結
以上是生活随笔 為你收集整理的开源接口测试平台BTest 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。