pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

在 Java 中將 WireMock 與 SOAP Web 服務一起使用

Using WireMock with SOAP Web Services in Java(在 Java 中將 WireMock 與 SOAP Web 服務一起使用)
本文介紹了在 Java 中將 WireMock 與 SOAP Web 服務一起使用的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我對 WireMock 完全陌生.

到目前為止,我一直在使用 SOAPUI 模擬響應.我的用例很簡單:

Until now, I have been using mock responses using SOAPUI. My use case is simple:

只需將 SOAP XML 請求發送到不同的端點 (http://localhost:9001/endpoint1) 并獲得罐頭返回 XML 響應.但是 MockWrire 必須作為獨立服務部署到專用服務器上,該服務器將充當提供模擬響應的中心位置.

Just firing SOAP XML requests to different endpoints (http://localhost:9001/endpoint1) and getting canned XML response back. But MockWrire has to be deployed as a standalone service onto a dedicated server which will act a central location from where mock responses will be served.

只是想要一些開始的建議.正如我所見,WireMock 更適合 REST Web 服務.所以我的疑問是:

Just wanted some starting suggestions. As I can see WireMock is more suitable towards REST web services. So my doubts are:

1) 我是否需要將其部署到 Java Web 服務器或容器以充當始終運行的獨立服務.我讀到你可以通過使用來分拆

1) Do I need to deploy it to a java web server or container to act as always running standalone service. I read that you can just spin off by using

java -jar mockwire.jar --port [port_number]

2) 我需要使用 MockWire API 嗎?我需要為我的用例制作課程嗎?就我而言,請求將通過 JUnit 測試用例觸發以進行模擬.

2) Do I need to use MockWire APIs? Do I need to make classes for my use case? In my case, requests will be triggered via JUnit test cases for mocking.

3) 如何實現簡單的 URL 模式匹配?如上所述,我只需要簡單的模擬,即在向 http://localhost:9001/endpoint1

3) How do I achieve simple URL pattern matching? As stated above, I just need simple mocking i.e get response when request is made to http://localhost:9001/endpoint1

4) 我的用例是否有更好/更簡單的框架?我讀過 Mockable,但它對 3 名團隊成員和免費層的演示域有限制.

4) Is there a better/easier framework for my usecase? I read about Mockable but it has restrictions for 3 team members and demo domain in free tier.

推薦答案

我是 WireMock 的創造者.

I'm WireMock's creator.

我最近使用 WireMock 在客戶端項目上模擬了一組 SOAP 接口,因此我可以證明這是可能的.至于它是否比 SOAP UI 更好或更差,我想說有一些明確的好處,但也有一些權衡.一個主要的好處是相對易于部署和編程訪問/配置,以及對 HTTPS 和低級故障注入等內容的支持.但是,您需要做更多的工作來解析和生成 SOAP 有效負載 - 它不會像 SOAP UI 那樣從 WSDL 生成代碼/存根.

I've used WireMock to mock a collection of SOAP interfaces on a client project quite recently, so I can attest that it's possible. As for whether it's better or worse than SOAP UI, I'd say there are some definite upsides, but with some tradeoffs. A major benefit is the relative ease of deployment and programmatic access/configuration, and support for things like HTTPS and low-level fault injection. However, you need to do a bit more work to parse and generate SOAP payloads - it won't do code/stub generation from WSDL like SOAP UI will.

我的經驗是,像 SOAP UI 這樣的工具可以讓您更快地開始,但從長遠來看,當您的測試套件變得非常瑣碎時,往往會導致更高的維護成本.

My experience is that tools like SOAP UI will get you started faster, but tend to result in higher maintenance costs in the long run when your test suite grows beyond trivial.

依次解決您的觀點:1)如果您希望您的模擬在某處的服務器上運行,最簡單的方法是運行您所描述的獨立 JAR.我建議不要嘗試將其部署到容器中 - 此選項僅在別無選擇時才存在.

To address your points in turn: 1) If you want your mocks to run on a server somewhere, the easiest way to do this is to run the standalone JAR as you've described. I'd advise against trying to deploy it to a container - this option really only exists for when there's no alternative.

但是,如果您只想運行集成測試或完全獨立的功能測試,我建議您使用 JUnit 規則.我想說在專用進程中運行它只是一個好主意,如果 a) 您將其他已部署的系統插入其中,或者 b) 您從非 JVM 語言中使用它.

However, if you just want to run integration tests or totally self-contained functional tests, I'd suggest using the JUnit rule. I'd say it's only a good idea to run it in a dedicated process if either a) you're plugging other deployed systems into it, or b) you're using it from a non-JVM language.

2) 您需要以 3 種方式之一對其進行配置:1) Java API,2) 基于 HTTP 的 JSON,或 3) JSON 文件.3) 可能最接近您使用 SOAP UI 的習慣.

2) You'd need to configure it in one of 3 ways 1) the Java API, 2) JSON over HTTP, or 3) JSON files. 3) is probably closest to what you're used to with SOAP UI.

3) 查看 http://wiremock.org/stubbing.html 了解大量使用JSON 和 Java.由于 SOAP 傾向于綁定到固定的端點 URL,您可能需要 urlEqualTo(...).當我過去使用 SOAP 存根時,我傾向于在整個請求正文上進行 XML 匹配(請參閱 http://wiremock.org/stubbing.html#xml-body-matching).我建議投資編寫一些 Java 構建器來發出您需要的請求和響應正文 XML.

3) See http://wiremock.org/stubbing.html for lots of stubbing examples using both JSON and Java. Since SOAP tends to bind to fixed endpoint URLs, you probably want urlEqualTo(...). When I've stubbed SOAP in the past I've tended to XML match on the entire request body (see http://wiremock.org/stubbing.html#xml-body-matching). I'd suggest investing in writing a few Java builders to emit the request and response body XML you need.

4) 模擬服務器 和 Betamax 都是 WireMock 的成熟替代品,但 AFAIK 它們不提供任何更明確的 SOAP 支持.

4) Mock Server and Betamax are both mature alternatives to WireMock, but AFAIK they don't offer any more explicit SOAP support.

這篇關于在 Java 中將 WireMock 與 SOAP Web 服務一起使用的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to mock super reference (on super class)?(如何模擬超級參考(在超級類上)?)
Java mock database connection(Java 模擬數據庫連接)
Mockito ClassCastException - A mock cannot be cast(Mockito ClassCastException - 無法投射模擬)
Set value to mocked object but get null(將值設置為模擬對象但獲取 null)
How to mock DriverManager.getConnection(...)?(如何模擬 DriverManager.getConnection(...)?)
Mockito; verify method was called with list, ignore order of elements in list(模擬;使用列表調用驗證方法,忽略列表中元素的順序)
主站蜘蛛池模板: 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 福尔卡(北京)新型材料技术股份有限公司 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 信阳市建筑勘察设计研究院有限公司 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 开平机_纵剪机厂家_开平机生产厂家|诚信互赢-泰安瑞烨精工机械制造有限公司 | 高低温万能试验机-复合材料万能试验机-馥勒仪器 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 模具ERP_模具管理系统_模具mes_模具进度管理_东莞市精纬软件有限公司 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 篮球架_乒乓球台_足球门_校园_竞技体育器材_厂家_价格-沧州浩然体育器材有限公司 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 |