在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

jf_98250943 ? 來(lái)源:jf_98250943 ? 作者:jf_98250943 ? 2024-10-25 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在本地開(kāi)發(fā)和測(cè)試期間,經(jīng)常會(huì)遇到您的應(yīng)用依賴(lài)于遠(yuǎn)程 API 的情況。網(wǎng)絡(luò)問(wèn)題、速率限制,甚至 API 提供商的停機(jī)都可能阻礙您的進(jìn)度。這會(huì)嚴(yán)重影響您的工作效率并使測(cè)試更具挑戰(zhàn)性。這就是 WireMock 發(fā)揮作用的地方。

WireMock 是一個(gè)開(kāi)源工具,可以幫助開(kāi)發(fā)人員創(chuàng)建模擬真實(shí) API 行為的模擬服務(wù)器,為開(kāi)發(fā)和測(cè)試提供受控環(huán)境。

假設(shè)您有一個(gè) API 和一個(gè)前端應(yīng)用,并且想要測(cè)試前端如何與 API 交互。使用 WireMock,您可以設(shè)置一個(gè)模擬服務(wù)器來(lái)模擬 API 的響應(yīng),這樣您就可以在不依賴(lài)實(shí)際 API 的情況下測(cè)試前端行為。當(dāng) API 仍在開(kāi)發(fā)中或您想要在不影響實(shí)際 API 的情況下測(cè)試不同場(chǎng)景時(shí),這會(huì)特別有用。WireMock 支持 HTTP 和 HTTPS 協(xié)議,可以模擬各種響應(yīng)場(chǎng)景,包括延遲、錯(cuò)誤和不同的 HTTP 狀態(tài)代碼。

在本指南中,您將學(xué)習(xí)如何:

使用 Docker 啟動(dòng) WireMock 容器。
在本地開(kāi)發(fā)中使用模擬數(shù)據(jù),無(wú)需依賴(lài)外部 API
在生產(chǎn)中使用 Live API 從 AccuWeather 獲取實(shí)時(shí)天氣數(shù)據(jù)。

將 WireMock 與 Docker 結(jié)合使用

WireMock 的官方 Docker 鏡像提供了一種部署和管理 WireMock 實(shí)例的便捷方式。WireMock 適用于各種 CPU 架構(gòu),包括 amd64、armv7 和 armv8,確保與不同設(shè)備和平臺(tái)兼容。您可以在 WireMock 文檔站點(diǎn)上了解有關(guān) WireMock 獨(dú)立版的更多信息。

先決條件

遵循本操作指南需要滿(mǎn)足以下先決條件:

Docker 桌面

啟動(dòng) WireMock

使用以下步驟啟動(dòng) WireMock 的快速演示:

在本地克隆 GitHub 存儲(chǔ)庫(kù)。

$ git clone https://github.com/dockersamples/wiremock-node-docker


導(dǎo)航到wiremock-endpoint目錄

$ cd wiremock-node-docker/


WireMock 充當(dāng)后端與之通信以檢索數(shù)據(jù)的模擬 API。已在映射目錄中為您創(chuàng)建了模擬 API 響應(yīng)。

通過(guò)在克隆的項(xiàng)目目錄的根目錄下運(yùn)行以下命令來(lái)啟動(dòng) Compose 堆棧

$ docker compose up -d


片刻之后,應(yīng)用程序?qū)?dòng)并運(yùn)行。

您可以通過(guò)選擇容器來(lái)檢查日志wiremock-node-docker:

測(cè)試 Mock API。

$ curl http://localhost:8080/api/v1/getWeather?city=Bengaluru


它將返回帶有模擬數(shù)據(jù)的以下預(yù)設(shè)響應(yīng):

{"city":"Bengaluru","temperature":27.1,"conditions":"Mostly cloudy","forecasts":[{"date":"2024-09-02T07:00:00+05:30","temperature":83,"conditions":"Partly sunny w/ t-storms"},{"date":"2024-09-03T07:00:00+05:30","temperature":83,"conditions":"Thunderstorms"},{"date":"2024-09-04T07:00:00+05:30","temperature":83,"conditions":"Intermittent clouds"},{"date":"2024-09-05T07:00:00+05:30","temperature":82,"conditions":"Dreary"},{"date":"2024-09-06T07:00:00+05:30","temperature":82,"conditions":"Dreary"}]}

使用 WireMock,您可以使用映射文件定義預(yù)設(shè)響應(yīng)。對(duì)于此請(qǐng)求,模擬數(shù)據(jù)在 JSON 文件中定義 wiremock-endpoint/mappings/getWeather/getWeatherBengaluru.json。

有關(guān)存根預(yù)制響應(yīng)的更多信息,請(qǐng)參閱 WireMock 文檔。

在開(kāi)發(fā)中使用 WireMock

現(xiàn)在您已經(jīng)嘗試了 WireMock,讓我們?cè)陂_(kāi)發(fā)和測(cè)試中使用它。在此示例中,您將使用具有 Node.js 后端的示例應(yīng)用程序。此應(yīng)用程序堆棧具有以下配置:

本地開(kāi)發(fā)環(huán)境:Node.js 后端和 WireMock 運(yùn)行的環(huán)境。
Node.js Backend:代表處理 HTTP 請(qǐng)求的后端應(yīng)用程序。
外部 AccuWeather API:獲取實(shí)時(shí)天氣數(shù)據(jù)的真實(shí) API。
WireMock:測(cè)試期間模擬 API 響應(yīng)的模擬服務(wù)器。它作為 Docker 容器運(yùn)行。

展示 WireMock 開(kāi)發(fā)中的架構(gòu)圖

在開(kāi)發(fā)中,Node.js 后端向 WireMock 發(fā)送請(qǐng)求,而不是實(shí)際的 AccuWeather API。
在生產(chǎn)中,它直接連接到實(shí)時(shí) AccuWeather API 獲取真實(shí)數(shù)據(jù)。

在本地開(kāi)發(fā)中使用模擬數(shù)據(jù)

讓我們?cè)O(shè)置一個(gè) Node 應(yīng)用程序來(lái)向 WireMock 容器而不是實(shí)際的 AccuWeather API 發(fā)送請(qǐng)求。

先決條件

安裝 Node.js 和 npm
確保 WireMock 容器已啟動(dòng)并正在運(yùn)行(請(qǐng)參閱 啟動(dòng) Wiremock

按照以下步驟設(shè)置非容器化的 Node 應(yīng)用程序:

導(dǎo)航到accuweather-api目錄

確保您位于package.json文件所在的目錄中。

設(shè)置環(huán)境變量。

打開(kāi)目錄.env下的文件accuweather-api/。刪除舊條目并確保它只包含以下一行。

API_ENDPOINT_BASE=http://localhost:8080

這將告訴你的 Node.js 應(yīng)用程序使用 WireMock 服務(wù)器進(jìn)行 API 調(diào)用。

檢查應(yīng)用程序入口點(diǎn)

該應(yīng)用程序的主文件是index.js,位于accuweather-api/src/api目錄中。
此文件啟動(dòng)getWeather.js模塊,這對(duì)您的 Node.js 應(yīng)用程序至關(guān)重要。它使用dotenv包從文件中加載環(huán)境變量.env。
根據(jù) 的值A(chǔ)PI_ENDPOINT_BASE,應(yīng)用程序?qū)⒄?qǐng)求路由到 WireMock 服務(wù)器 ( http://localhost:8080) 或 AccuWeather API。在此設(shè)置中,它使用 WireMock 服務(wù)器。
代碼確保ACCUWEATHER_API_KEY僅當(dāng)應(yīng)用程序未使用 WireMock 時(shí)才需要,從而提高效率并避免錯(cuò)誤。

啟動(dòng) Node 服務(wù)器

在啟動(dòng) Node 服務(wù)器之前,請(qǐng)通過(guò)運(yùn)行確保已經(jīng)安裝了 package.json 文件中列出的節(jié)點(diǎn)包npm install。

npm install
npm run start


您應(yīng)該看到以下輸出:

> express-api-starter@1.2.0 start
> node src/index.js

API_ENDPOINT_BASE: http://localhost:8080
..
Listening: http://localhost:5001

輸出表明您的 Node 應(yīng)用程序已成功啟動(dòng)。保持此終端窗口打開(kāi)。

測(cè)試模擬 API

打開(kāi)一個(gè)新的終端窗口并運(yùn)行以下命令來(lái)測(cè)試模擬的 API:

$ curl "http://localhost:5001/api/v1/getWeather?city=Bengaluru"


您應(yīng)該看到以下輸出:

{"city":"Bengaluru","temperature":27.1,"conditions":"Mostly cloudy","forecasts":[{"date":"2024-09-02T07:00:00+05:30","temperature":83,"conditions":"Partly sunny w/ t-storms"},{"date":"2024-09-03T07:00:00+05:30","temperature":83,"conditions":"Thunderstorms"},{"date":"2024-09-04T07:00:00+05:30","temperature":83,"conditions":"Intermittent clouds"},{"date":"2024-09-05T07:00:00+05:30","temperature":82,"conditions":"Dreary"},{"date":"2024-09-06T07:00:00+05:30","temperature":82,"conditions":"Dreary"}]}%

這表明你的 Node.js 應(yīng)用程序現(xiàn)在已成功將請(qǐng)求路由到 WireMock 容器并接收模擬響應(yīng)

您可能已經(jīng)注意到,您正在嘗試使用http://localhost:5001URL 而不是 port 8080。這是因?yàn)槟?Node.js 應(yīng)用程序正在 port 上運(yùn)行5001,并且它將請(qǐng)求路由到正在監(jiān)聽(tīng) port 的 WireMock 容器8080。

顯示在 Docker Desktop 上運(yùn)行的 WireMock 容器的日志的圖表

顯示在 Docker Desktop 上運(yùn)行的 WireMock 容器的圖表

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    5669

    瀏覽量

    128577
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1568

    瀏覽量

    63734
  • 開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    373

    瀏覽量

    41435
  • 前端
    +關(guān)注

    關(guān)注

    1

    文章

    214

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    鴻蒙開(kāi)發(fā)API9 到 API12,有哪些不同

    上傳圖片等與圖片相關(guān)的功能測(cè)試,而API12的模擬雖然有圖庫(kù),但是并沒(méi)有圖片,需要使用一些“特殊手段”才能導(dǎo)入圖片測(cè)試相關(guān)功能 ?? 五
    發(fā)表于 06-29 22:47

    HarmonyOS5服務(wù)技術(shù)分享--存儲(chǔ)SDK文章整理

    HarmonyOS ArkTS應(yīng)用中集成華為存儲(chǔ)SDK指南 大家好呀!今天咱們來(lái)聊聊如何將華為存儲(chǔ)SDK集成到基于A(yíng)rkTS(API 9-11)的HarmonyOS應(yīng)用
    發(fā)表于 05-22 19:09

    HarmonyOS5服務(wù)技術(shù)分享--ArkTS開(kāi)發(fā)函數(shù)

    ) 最后說(shuō)句掏心窩的話(huà):本地調(diào)試真的能省下80%的打包等待時(shí)間,早用早輕松!開(kāi)發(fā)過(guò)程中遇到任何問(wèn)題,歡迎評(píng)論區(qū)拍磚交流~ ? 祝各位開(kāi)發(fā)者調(diào)試順利,BUG退散!下次咱們?cè)倭牧?b class='flag-5'>云函數(shù)的
    發(fā)表于 05-22 17:29

    HarmonyOS5服務(wù)技術(shù)分享--ArkTS開(kāi)發(fā)Node環(huán)境

    ? 你好呀,開(kāi)發(fā)者小伙伴們!今天我們來(lái)聊聊如何在HarmonyOS(ArkTS API 9及以上)玩轉(zhuǎn)函數(shù),特別是結(jié)合Node.js和HTTP觸發(fā)器的
    發(fā)表于 05-22 17:21

    集成API設(shè)計(jì)+測(cè)試+文檔管理,全新一站式解決方案SmartBear API Hub功能介紹

    SmartBear全新推出API Hub,助力高效應(yīng)對(duì)API開(kāi)發(fā)挑戰(zhàn)! API Hub專(zhuān)為API開(kāi)發(fā)
    的頭像 發(fā)表于 04-08 17:52 ?294次閱讀
    集成<b class='flag-5'>API</b>設(shè)計(jì)+<b class='flag-5'>測(cè)試</b>+文檔管理,全新一站式解決方案SmartBear <b class='flag-5'>API</b> Hub功能介紹

    華納香港服務(wù)器8H16G5M低至166元/月,首單直降!開(kāi)春上開(kāi)好局

    華納官網(wǎng)上線(xiàn)了開(kāi)春大促活動(dòng),這次活動(dòng)促銷(xiāo)涵蓋服務(wù)器、CN2服務(wù)器、大帶寬服務(wù)器、高防
    的頭像 發(fā)表于 02-13 14:11 ?290次閱讀

    騰訊率先上線(xiàn)DeepSeek模型API接口,支持聯(lián)網(wǎng)搜索

    近日,騰訊宣布了一項(xiàng)重要更新,正式上線(xiàn)了DeepSeek-R1及V3原版模型的API接口。這一舉措不僅展示了騰訊公有
    的頭像 發(fā)表于 02-10 09:47 ?950次閱讀

    服務(wù)器 Flexus X 實(shí)例:one-api 部署,支持眾多大模型

    本文通過(guò) Flexus 服務(wù)器 X 實(shí)例 部署 one-api。Flexus 服務(wù)器 X 實(shí)例是新一代面向中小企業(yè)和
    的頭像 發(fā)表于 02-06 17:35 ?529次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>服務(wù)</b>器 Flexus X 實(shí)例:one-<b class='flag-5'>api</b> 部署,支持眾多大模型

    基于華為 Flexus 服務(wù)器 X 部署的 CRMEB 商城系統(tǒng)中進(jìn)行二次開(kāi)發(fā)

    即用、體驗(yàn)躍級(jí)、面向中小企業(yè)和開(kāi)發(fā)者打造的高品價(jià)比服務(wù)產(chǎn)品。Flexus 服務(wù)器 X 實(shí)例是華為
    的頭像 發(fā)表于 02-06 15:51 ?316次閱讀
    <b class='flag-5'>在</b>基于華為<b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b><b class='flag-5'>服務(wù)</b>器 X 部署的 CRMEB 商城系統(tǒng)中進(jìn)行二次<b class='flag-5'>開(kāi)發(fā)</b>

    華為 Flexus 服務(wù)器 X 實(shí)例下的 Redis 性能基準(zhǔn)測(cè)試

    的杰出代表,展現(xiàn)了卓越的能力。 Flexus 服務(wù)器 X 實(shí)例是針對(duì)中小企業(yè)和開(kāi)發(fā)者的下一代靈活計(jì)算
    的頭像 發(fā)表于 01-23 18:07 ?353次閱讀
    華為<b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b><b class='flag-5'>服務(wù)</b>器 X 實(shí)例下的 Redis 性能基準(zhǔn)<b class='flag-5'>測(cè)試</b>

    鴻蒙原生開(kāi)發(fā)手記:01-元服務(wù)開(kāi)發(fā)

    限制 需要注意的時(shí),部分 API 服務(wù)無(wú)法使用, HarmonOS 文檔里面,打開(kāi) API
    發(fā)表于 11-14 17:28

    api驅(qū)動(dòng)的服務(wù)是什么意思?

    API驅(qū)動(dòng)的服務(wù)是指利用API技術(shù)來(lái)驅(qū)動(dòng)和提供服務(wù)的模式。在這種模式下,
    的頭像 發(fā)表于 11-14 10:06 ?532次閱讀

    使用API Post測(cè)試阿里物聯(lián)網(wǎng)平臺(tái)動(dòng)態(tài)注冊(cè)

    使用API Post測(cè)試阿里物聯(lián)網(wǎng)平臺(tái)動(dòng)態(tài)注冊(cè)
    的頭像 發(fā)表于 10-05 19:08 ?762次閱讀
    使用<b class='flag-5'>API</b> Post<b class='flag-5'>測(cè)試</b>阿里<b class='flag-5'>云</b>物聯(lián)網(wǎng)平臺(tái)動(dòng)態(tài)注冊(cè)

    恒訊科技分析:使用顯卡服務(wù)器進(jìn)行游戲開(kāi)發(fā)有哪些優(yōu)勢(shì)和劣勢(shì)?

    使用顯卡服務(wù)器進(jìn)行游戲開(kāi)發(fā)具有一系列的優(yōu)勢(shì)和劣勢(shì): 一、優(yōu)勢(shì): 1、高性能計(jì)算:顯卡服務(wù)器基于GPU的架構(gòu)提供了強(qiáng)大的并行處理能力,這對(duì)
    的頭像 發(fā)表于 09-04 13:20 ?620次閱讀

    如何理解計(jì)算?

    計(jì)算的工作原理是什么? 計(jì)算和傳統(tǒng)IT技術(shù)的區(qū)別? 華納如何幫助您實(shí)現(xiàn)計(jì)算? 什么是計(jì)
    發(fā)表于 08-16 17:02
    主站蜘蛛池模板: 亚瑟 国产精品 | 国产aaa级一级毛片 国产ar高清视频+视频 | 国产美女主播一级成人毛片 | 激情五月社区 | 久久青青草原精品老司机 | 久久综合九色综合精品 | 国产亚洲精品久久久久久久软件 | 午夜在线免费视频 | 国产经典三级 | 欧美性黑人十极品hd | 九九精品在线 | 福利社看片 | 午夜精品福利视频 | 日本不卡高清免费 | 亚洲涩综合| 日本高清中文字幕在线观穿线视频 | 狠狠的干狠狠的操 | 欧美人成绝费网站色www吃脚 | jlzzjlzzjlzz日本亚洲 | 看片午夜 | 六月婷婷在线观看 | 亚洲国产人久久久成人精品网站 | 怡红院亚洲怡红院首页 | 免费能看的黄色网址 | 免费在线观看理论片 | 色综合五月婷婷 | 色聚网久久综合 | 午夜100| 国产成人精品曰本亚洲78 | 一区二区三区四区免费视频 | 手机在线看片国产 | gogo亚洲肉体艺术100 | 午夜在线一区 | 久久精品视频免费观看 | 五月天婷婷精品视频 | 五月天在线婷婷 | 男女交性拍拍拍高清视频 | 奇米影视99 | 你懂得在线网站 | q2002在线观看免费 | 男女啪视频大全1000 |