成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WireMock 讓你輕松模擬API

開發(fā) 前端
WireMock 是一個Http 模擬服務,其核心也是一個web服務,WireMock主要是為特定請求提供固定的返回值。

哈嘍,大家好,我是指北君。

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

1. 前言

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

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

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

2. WireMock搭建

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

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

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

啟動界面如下:

圖片

3. WireMock使用

WireMock啟動時候,文件夾里面會有 _files 和 mappings 兩個文件夾, _files文件夾中可以放一些返回數(shù)據(jù)文件。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 返回數(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文件夾下面新建的文件:

圖片

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

圖片

3.5 URL 映射

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

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

3.6 指定請求頭

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

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

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

{
"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狀態(tài):

圖片

訪問第二個接口,改變其狀態(tài)如下

圖片

再次訪問API,返回新的數(shù)據(jù)

圖片

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服務,可以模擬開發(fā)測試需要的各種請求,使用十分方便。對于維護測試環(huán)境穩(wěn)定以及提高開發(fā)效率方面都有不錯的效果。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2009-12-11 10:47:31

Linux共享庫

2023-07-06 08:31:50

Python對象編程

2013-03-07 10:25:53

在線追蹤隱私保護

2010-12-23 15:55:00

上網(wǎng)行為管理

2009-12-08 13:28:43

2020-06-28 16:07:03

HomebrewMacLinux

2023-09-04 07:54:06

2021-08-17 07:15:16

Github開源項目

2014-03-14 09:47:08

手游進化產(chǎn)品

2018-11-28 13:23:19

Kagglefeatexp特征

2025-04-30 10:41:34

2013-11-25 16:27:30

微軟Windows 8.1

2024-01-04 08:23:02

PythonPDFPPT

2015-10-28 14:03:32

數(shù)據(jù)遷移數(shù)據(jù)

2015-03-20 14:51:09

Testin云測

2012-02-06 13:31:16

金山快盤新功能

2011-09-02 09:41:51

應用交付應用交付優(yōu)化

2023-10-23 09:44:00

并發(fā)管理線程

2013-08-05 10:47:21

開源開源程序Linux桌面

2023-06-09 07:55:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区精品免费 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 欧美综合久久 | 成人免费在线观看 | 日韩欧美在线观看视频 | 一区二区久久电影 | 在线视频第一页 | 日日干日日色 | 97伦理| 成年无码av片在线 | 免费在线观看成人av | 男人的天堂中文字幕 | 免费看一区二区三区 | 自拍偷拍中文字幕 | 亚洲九九 | 成人午夜网 | 久久亚洲春色中文字幕久久久 | 99精品网| 国产中文视频 | 免费久久精品视频 | 521av网站| 久久中文字幕一区 | 断背山在线观看 | 久久久久99| 水蜜桃久久夜色精品一区 | 免费一级网站 | 国产日韩一区二区 | 精品国产一区二区在线 | 国产精品视频一区二区三区 | 成人影院一区二区三区 | 日韩精品 电影一区 亚洲 | 男人阁久久 | 日本精品一区二区三区视频 | 成人精品一区二区三区 | 久久精品成人 | 91视频国产一区 | 天天曰夜夜| 97久久精品| 国产精品一区二区福利视频 | 久久久www成人免费无遮挡大片 | 在线免费观看欧美 |