日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

开源接口测试平台BTest

發(fā)布時(shí)間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源接口测试平台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ò),歡迎將生活随笔推薦給好友。