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