chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用WireMock搭建一個(gè)HTTP模擬器

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們開(kāi)發(fā)過(guò)程中,前端和后端的開(kāi)發(fā)大多是同時(shí)進(jìn)行的,而前端開(kāi)發(fā)需要訪問(wèn)某個(gè)接口返回?cái)?shù)據(jù)的時(shí),我們可以使用WireMock模擬指定API返回指定測(cè)試數(shù)據(jù),這可以極大的方便我們的開(kāi)發(fā)工作。今天就介紹如何使用WireMock搭建一個(gè)HTTP模擬器,并介紹一些基本案例。

1. 前言

WireMock 是一個(gè)Http 模擬服務(wù),其核心也是一個(gè)web服務(wù),WireMock主要是為特定請(qǐng)求提供固定的返回值。

WireMock可以作為單獨(dú)進(jìn)程啟動(dòng),模擬一個(gè)WEB服務(wù)器,提供一些API訪問(wèn),并返回特定的返回值。也可以作為第三方庫(kù)在項(xiàng)目中使用。

下面我們先介紹以下WireMock模擬WEB服務(wù)器的使用吧。

2. WireMock搭建

  1. 第一步,先下載WireMock的Jar包, 本教程使用下載地址如下 :https://repo1.maven.org/maven2/com/github/tomakehurst/wiremock-jre8-standalone/2.33.2/wiremock-jre8-standalone-2.33.2.jar

  2. 到指定目錄啟動(dòng)Jar,同時(shí)也可以加一些啟動(dòng)參數(shù)。下面的命令表示用9998端口啟動(dòng)這個(gè)模擬服務(wù)器。

    java -jar wiremock-jre8-standalone-2.33.2.jar -port 9998
    

    啟動(dòng)界面如下:

    圖片

3. WireMock使用

WireMock啟動(dòng)時(shí)候,文件夾里面會(huì)有 _files 和 mappings 兩個(gè)文件夾, _files文件夾中可以放一些返回?cái)?shù)據(jù)文件。mappings文件夾中存放映射關(guān)系,使用json格式的文件。

圖片

如下圖,新建json文件,啟動(dòng)WireMock時(shí)回加載這些文件,更新之后只需要重啟WireMock即可。

圖片

3.1 簡(jiǎn)單API映射

json文件如下,

{
 "mappings": [
  {
   "request": {
    "method": "GET",
    "url": "/api/hello"
   },
   "response": {
    "body": "Hello world!",
    "headers": {
     "Content-Type": "text/plain"
    },
    "status": 200
   }
  }
 ]
}

啟動(dòng)后正常訪問(wèn):

圖片

如果配置的地址訪問(wèn)不到也會(huì)返回錯(cuò)誤,如下:

圖片

3.2 返回response中添加header

{
    "request": {
        "method": "GET",
        "url": "/whatever"
    },
    "response": {
        "status": 200,
        "headers": {
            "Content-Type": "text/plain",
            "Set-Cookie": ["session_id=91837492837", "split_test_group=B"],
            "Cache-Control": "no-cache"
        }
    }
}

3.3 返回?cái)?shù)組

"response": {
        "status": 200,
        "jsonBody": {
          "arbitrary_json": [1, 2, 3]
        }
    }

3.4 返回指定文件數(shù)據(jù) 寫在_file文件夾里面

{
    "request": {
        "method": "GET",
        "url": "/bodyfile"
    },
    "response": {
        "status": 200,
        "bodyFileName": "/myfile.xml"
    }
}

_file文件夾下面新建的文件:

圖片

訪問(wèn)接口則可以直接返回文件中的數(shù)據(jù):

圖片

3.5 URL 映射

WireMock也支持映射正則表達(dá)式:

{
  "request": {
    "urlPattern": "/your/([a-z]*)?and=query"
    ...
  },
  ...
}

3.6 指定請(qǐng)求頭

{
  "request": {
    ...
    "headers": {
      "Content-Type": {
        "equalTo": "application/json",
        "caseInsensitive": true
      }
    }
    ...
  },
  ...
}

3.7 可變狀態(tài)請(qǐng)求

requiredScenarioState/newScenarioState 可以記錄當(dāng)前API映射所處的狀態(tài)以及新的狀態(tài),可以通過(guò)改變其狀態(tài),從而可以使同一個(gè)API返回不同的結(jié)果, 如下面的請(qǐng)求則可以改變狀態(tài),返回不同的結(jié)果.

{
 "mappings": [
  {
   "scenarioName": "To do list",
   "requiredScenarioState": "Started",
   "request": {
    "method": "GET",
    "url": "/todo/items"
   },
   "response": {
    "status": 200,
    "body": "< items >< item >Buy milk< /item >< /items >"
   }
  },
  {
   "scenarioName": "To do list",
   "requiredScenarioState": "Started",
   "newScenarioState": "Cancel newspaper item added",
   "request": {
    "method": "POST",
    "url": "/todo/items",
    "bodyPatterns": [
     {
      "contains": "Cancel newspaper subscription"
     }
    ]
   },
   "response": {
    "status": 201
   }
  },
  {
   "scenarioName": "To do list",
   "requiredScenarioState": "Cancel newspaper item added",
   "request": {
    "method": "GET",
    "url": "/todo/items"
   },
   "response": {
    "status": 200,
    "body": "< items >< item >Buy milk< /item >< item >Cancel newspaper subscription< /item >< /items >"
   }
  }
 ]
}
  • 第一次訪問(wèn)時(shí),Started狀態(tài):
    圖片
  • 訪問(wèn)第二個(gè)接口,改變其狀態(tài)如下
  • 再次訪問(wèn)API,返回新的數(shù)據(jù)
    圖片

3.8 API 故障模擬

設(shè)置延時(shí)返回,如下可以設(shè)置定時(shí)延遲2秒。

{
  "request": {
   "method": "GET",
   "url": "/delayed"
  },
  "response": {
   "status": 200,
   "fixedDelayMilliseconds": 2000
  }
 }

如下是延遲2秒的返回結(jié)果。

圖片

同時(shí)也可以設(shè)置隨機(jī)的延遲時(shí)間:

{
    "request": {
        "method": "GET",
        "url": "/random/delayed"
    },
    "response": {
        "status": 200,
        "delayDistribution": {
            "type": "lognormal",
            "median": 50,
            "sigma": 0.4
    }
    }
}

總結(jié)

WireMock可以快速搭建Web服務(wù),可以模擬開(kāi)發(fā)測(cè)試需要的各種請(qǐng)求,使用十分方便。對(duì)于維護(hù)測(cè)試環(huán)境穩(wěn)定以及提高開(kāi)發(fā)效率方面都有不錯(cuò)的效果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1926

    瀏覽量

    65500
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    530

    瀏覽量

    34423
  • Web服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    25056
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    969

    瀏覽量

    45156
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LCD模擬器

    本帖最后由 sky512 于 2012-7-13 11:37 編輯 本模擬器可以模擬點(diǎn)陣LCD的基本顯示效果,通過(guò)調(diào)用相應(yīng)函數(shù)可以靈活地改變點(diǎn)陣數(shù)、顏色等屬性??梢苑奖沩?xiàng)目開(kāi)發(fā)的前期模擬測(cè)試。下載地址:
    發(fā)表于 07-08 20:41

    電腦pc端上安卓模擬器下載與使用教程

    安卓作為全球用戶最多的智能手機(jī)系統(tǒng),有很多好玩兒的應(yīng)用。如果你還沒(méi)有安卓手機(jī),又想買部試試,可是價(jià)格都不便宜,買來(lái)不適合自己怎么辦?那么可以先在電腦上安裝個(gè)安卓模擬器,因?yàn)樗梢栽?/div>
    發(fā)表于 09-10 11:56

    模擬器:904和模擬器:861錯(cuò)誤

    鏈接設(shè)計(jì)。我在論壇中看到我們需要使用任務(wù)管理或進(jìn)程查看來(lái)終止模擬器可執(zhí)行文件(_isim_beh.exe)。但是從哪里可以找到任務(wù)管理或進(jìn)程查看
    發(fā)表于 04-03 08:47

    LVGL模擬器該怎樣去搭建

    LVGL模擬器搭建我用的是vs搭建模擬器,實(shí)際上很簡(jiǎn)單,去下載最新的vs然后我是選擇了接下來(lái),下載安裝。再下載官方的模擬器。就可以進(jìn)行仿真
    發(fā)表于 01-18 09:31

    個(gè)經(jīng)濟(jì)的負(fù)責(zé)模擬器電路圖

    個(gè)經(jīng)濟(jì)的負(fù)責(zé)模擬器電路圖
    發(fā)表于 07-01 13:23 ?698次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>經(jīng)濟(jì)的負(fù)責(zé)<b class='flag-5'>模擬器</b>電路圖

    種新型的基于LabView設(shè)計(jì)的脈壓模擬器

    種新型的基于LabView設(shè)計(jì)的脈壓模擬器  摘   要: 提出了種新型的基于LabView設(shè)計(jì)的脈壓模擬器,介紹了其設(shè)計(jì)思想、系統(tǒng)的軟硬件構(gòu)成及應(yīng)
    發(fā)表于 12-01 10:25 ?1084次閱讀
    <b class='flag-5'>一</b>種新型的基于LabView設(shè)計(jì)的脈壓<b class='flag-5'>模擬器</b>

    仿真模擬器的不同_仿真模擬器的區(qū)別簡(jiǎn)單分析

    仿真模擬器經(jīng)常被混淆,兩者有些許相似,但是是兩個(gè)不同的概念,本文為大家?guī)?lái)仿真模擬器的區(qū)別簡(jiǎn)單分析。
    發(fā)表于 01-05 14:27 ?9849次閱讀

    種新的微結(jié)構(gòu)模擬器設(shè)計(jì)

    處理體系結(jié)構(gòu)模擬器可以對(duì)處理的結(jié)構(gòu)采用軟件方式進(jìn)行模擬,輔助處理的研究工作。通過(guò)對(duì)多種結(jié)構(gòu)和微結(jié)構(gòu)參數(shù)進(jìn)行配置,可以對(duì)處理
    發(fā)表于 03-12 16:13 ?0次下載
    <b class='flag-5'>一</b>種新的微結(jié)構(gòu)<b class='flag-5'>模擬器</b>設(shè)計(jì)

    如何使用vi模擬器?

    Atmel 小貼士 vi模擬器的使用
    的頭像 發(fā)表于 07-11 00:17 ?4711次閱讀

    ADSIM模擬器

    ADSIM模擬器
    發(fā)表于 03-23 13:50 ?15次下載
    ADSIM<b class='flag-5'>模擬器</b>

    個(gè)真正的Arduino UNO電子寵物模擬器

    電子發(fā)燒友網(wǎng)站提供《個(gè)真正的Arduino UNO電子寵物模擬器.zip》資料免費(fèi)下載
    發(fā)表于 10-21 10:16 ?1次下載
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>真正的Arduino UNO電子寵物<b class='flag-5'>模擬器</b>

    電路仿真模擬器怎么用

    電路仿真模擬器是電子工程師和學(xué)生必備的類軟件工具。通過(guò)使用電路仿真模擬器,用戶可以在計(jì)算機(jī)上模擬和分析各種電路設(shè)計(jì),從而避免在實(shí)際搭建電路
    的頭像 發(fā)表于 05-04 10:53 ?4081次閱讀

    華納云:使用 WireMock 在開(kāi)發(fā)和測(cè)試中模擬 API 服務(wù)

    WireMock 發(fā)揮作用的地方。 WireMock個(gè)開(kāi)源工具,可以幫助開(kāi)發(fā)人員創(chuàng)建模擬真實(shí) API 行為的
    的頭像 發(fā)表于 10-25 16:46 ?1177次閱讀

    電網(wǎng)模擬器工作原理淺析

    主要由以下幾個(gè)關(guān)鍵部分組成:模擬電源、模擬負(fù)載、測(cè)量系統(tǒng)和控制系統(tǒng)。 ? 1、模擬電源: 模擬電源是電網(wǎng)模擬器的核心部分,它能夠產(chǎn)生與實(shí)際電
    的頭像 發(fā)表于 01-09 16:58 ?1177次閱讀

    氙燈太陽(yáng)模擬器與LED太陽(yáng)模擬器的對(duì)比研究

    本文主要比較了基于氙燈和基于LED的太陽(yáng)能模擬器在光譜匹配、時(shí)間穩(wěn)定性和光照均勻性等方面的性能。通過(guò)測(cè)量多種太陽(yáng)能電池的電流-電壓(I-V)響應(yīng)和光譜響應(yīng)(SR),評(píng)估了兩種模擬器模擬太陽(yáng)光
    的頭像 發(fā)表于 07-24 11:31 ?309次閱讀
    氙燈太陽(yáng)<b class='flag-5'>模擬器</b>與LED太陽(yáng)<b class='flag-5'>模擬器</b>的對(duì)比研究