精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用WireMock搭建一個HTTP模擬器

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 10:38 ? 次閱讀

我們開發過程中,前端和后端的開發大多是同時進行的,而前端開發需要訪問某個接口返回數據的時,我們可以使用WireMock模擬指定API返回指定測試數據,這可以極大的方便我們的開發工作。今天就介紹如何使用WireMock搭建一個HTTP模擬器,并介紹一些基本案例。

1. 前言

WireMock 是一個Http 模擬服務,其核心也是一個web服務,WireMock主要是為特定請求提供固定的返回值。

WireMock可以作為單獨進程啟動,模擬一個WEB服務器,提供一些API訪問,并返回特定的返回值。也可以作為第三方庫在項目中使用。

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

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. 到指定目錄啟動Jar,同時也可以加一些啟動參數。下面的命令表示用9998端口啟動這個模擬服務器。

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

    啟動界面如下:

    圖片

3. WireMock使用

WireMock啟動時候,文件夾里面會有 _files 和 mappings 兩個文件夾, _files文件夾中可以放一些返回數據文件。mappings文件夾中存放映射關系,使用json格式的文件。

圖片

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

圖片

3.1 簡單API映射

json文件如下,

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

啟動后正常訪問:

圖片

如果配置的地址訪問不到也會返回錯誤,如下:

圖片

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 返回數組

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

3.4 返回指定文件數據 寫在_file文件夾里面

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

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

圖片

訪問接口則可以直接返回文件中的數據:

圖片

3.5 URL 映射

WireMock也支持映射正則表達式:

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

3.6 指定請求頭

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

3.7 可變狀態請求

requiredScenarioState/newScenarioState 可以記錄當前API映射所處的狀態以及新的狀態,可以通過改變其狀態,從而可以使同一個API返回不同的結果, 如下面的請求則可以改變狀態,返回不同的結果.

{
 "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 >"
   }
  }
 ]
}
  • 第一次訪問時,Started狀態:
    圖片
  • 訪問第二個接口,改變其狀態如下
  • 再次訪問API,返回新的數據
    圖片

3.8 API 故障模擬

設置延時返回,如下可以設置定時延遲2秒。

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

如下是延遲2秒的返回結果。

圖片

同時也可以設置隨機的延遲時間:

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

總結

WireMock可以快速搭建Web服務,可以模擬開發測試需要的各種請求,使用十分方便。對于維護測試環境穩定以及提高開發效率方面都有不錯的效果。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1485

    瀏覽量

    61817
  • HTTP
    +關注

    關注

    0

    文章

    501

    瀏覽量

    31065
  • Web服務器
    +關注

    關注

    0

    文章

    138

    瀏覽量

    24371
  • 模擬器
    +關注

    關注

    2

    文章

    867

    瀏覽量

    43165
收藏 人收藏

    評論

    相關推薦

    LCD模擬器

    本帖最后由 sky512 于 2012-7-13 11:37 編輯 本模擬器可以模擬點陣LCD的基本顯示效果,通過調用相應函數可以靈活地改變點陣數、顏色等屬性。可以方便項目開發的前期模擬測試。下載地址:
    發表于 07-08 20:41

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

    安卓作為全球用戶最多的智能手機系統,有很多好玩兒的應用。如果你還沒有安卓手機,又想買部試試,可是價格都不便宜,買來不適合自己怎么辦?那么可以先在電腦上安裝安卓模擬器,因為它可以在
    發表于 09-10 11:56

    模擬器:904和模擬器:861錯誤

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

    LVGL模擬器該怎樣去搭建

    LVGL模擬器搭建我用的是vs搭建模擬器,實際上很簡單,去下載最新的vs然后我是選擇了接下來,下載安裝。再下載官方的模擬器。就可以進行仿真
    發表于 01-18 09:31

    種多普勒模擬器的設計與實現The Design and I

    本文介紹了種成功應用于某自主外測系統的多普勒模擬器的設計與實現。該模擬器易于使用,控制靈活。在系統聯調期間,該模擬器可進行極小步進、快速掃頻,取得了滿意
    發表于 05-25 15:14 ?33次下載

    經濟的負責模擬器電路圖

    經濟的負責模擬器電路圖
    發表于 07-01 13:23 ?646次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>經濟的負責<b class='flag-5'>模擬器</b>電路圖

    種新型的基于LabView設計的脈壓模擬器

    種新型的基于LabView設計的脈壓模擬器  摘   要: 提出了種新型的基于LabView設計的脈壓模擬器,介紹了其設計思想、系統的軟硬件構成及應
    發表于 12-01 10:25 ?937次閱讀
    <b class='flag-5'>一</b>種新型的基于LabView設計的脈壓<b class='flag-5'>模擬器</b>

    仿真模擬器的不同_仿真模擬器的區別簡單分析

    仿真模擬器經常被混淆,兩者有些許相似,但是是兩不同的概念,本文為大家帶來仿真模擬器的區別簡單分析。
    發表于 01-05 14:27 ?8576次閱讀

    種新的微結構模擬器設計

    處理體系結構模擬器可以對處理的結構采用軟件方式進行模擬,輔助處理的研究工作。通過對多種結構和微結構參數進行配置,可以對處理
    發表于 03-12 16:13 ?0次下載
    <b class='flag-5'>一</b>種新的微結構<b class='flag-5'>模擬器</b>設計

    如何使用vi模擬器

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

    ADSIM模擬器

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

    真正的Arduino UNO電子寵物模擬器

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

    電路仿真模擬器怎么用

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

    華納云:使用 WireMock 在開發和測試中模擬 API 服務

    WireMock 發揮作用的地方。 WireMock開源工具,可以幫助開發人員創建模擬真實 API 行為的
    的頭像 發表于 10-25 16:46 ?273次閱讀

    如何使用光伏模擬器

    光伏模擬器種用于模擬太陽能光伏電池工作原理和性能的軟硬件設備。它能夠提供光伏電池在不同光照、溫度和環境條件下的電流、電壓、功率等參數,用于測試和評估光伏電池的性能,并幫助開發、優化和驗證光伏系統
    的頭像 發表于 10-30 17:12 ?159次閱讀
    如何使用光伏<b class='flag-5'>模擬器</b>