WireMock:Web Service测试桩和模拟
当前位置:以往代写 > 其他教程 >WireMock:Web Service测试桩和模拟
2019-06-14

WireMock:Web Service测试桩和模拟

WireMock:Web Service测试桩和模拟

本资源由 伯乐在线 – 唐尤华 整理

wiremock

WireMock是一个针对Web Service测试桩(stubbing)和模拟函数(mocking)开发库。与一般通用的模拟工具不同,WireMock会实际创建一个HTTP服务器,测试代码对其连接后进行测试。

WireMock支持HTTP响应桩,提供针对测试桩的请求验证、代理/拦截、记录/回放以及故障植入。既可以在单元测试中使用,也可以部署到一个独立的测试环境。

尽管WireMock采用Java编写,但你仍然使用多种编程语言通过JSON API调用。

视频:WireMock实战

Rob Elliot和我最近在伦敦Java社区大会上进行了演讲,展示了我们4年以来使用WireMock的成果。

观看视频

上手指南

Maven

要在Java项目中添加WireMock,可以将下面依赖添加到POM文件:

XHTML

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 <dependency>    <groupId>com.github.tomakehurst</groupId>    <artifactId>wiremock</artifactId>    <version>1.57</version>     <!– Include everything below here if you have dependency conflicts –>    <classifier>standalone</classifier>    <exclusions>        <exclusion>          <groupId>org.mortbay.jetty</groupId>          <artifactId>jetty</artifactId>        </exclusion>        <exclusion>          <groupId>com.google.guava</groupId>          <artifactId>guava</artifactId>        </exclusion>        <exclusion>          <groupId>com.fasterxml.jackson.core</groupId>          <artifactId>jackson-core</artifactId>        </exclusion>        <exclusion>          <groupId>com.fasterxml.jackson.core</groupId>          <artifactId>jackson-annotations</artifactId>        </exclusion>        <exclusion>          <groupId>com.fasterxml.jackson.core</groupId>          <artifactId>jackson-databind</artifactId>        </exclusion>        <exclusion>          <groupId>org.apache.httpcomponents</groupId>          <artifactId>httpclient</artifactId>        </exclusion>        <exclusion>          <groupId>org.skyscreamer</groupId>          <artifactId>jsonassert</artifactId>        </exclusion>        <exclusion>          <groupId>xmlunit</groupId>          <artifactId>xmlunit</artifactId>        </exclusion>        <exclusion>          <groupId>com.jayway.jsonpath</groupId>          <artifactId>json-path</artifactId>        </exclusion>        <exclusion>          <groupId>net.sf.jopt-simple</groupId>          <artifactId>jopt-simple</artifactId>        </exclusion>     </exclusions></dependency>

JUnit 4.x

#p#分页标题#e#

要使用WireMock的流式API,可以在代码中导入下面资源:

Java

1 import static com.github.tomakehurst.wiremock.client.WireMock.*;

WireMock自带了一些JUnit规则,用来进行服务器生命周期管理并且配置/撤销任务。要让WireMock支持基于测试用例的启动和停止,可以将下面代码添加到你的测试类(或者父类):

Java

12 @Rulepublic WireMockRule wireMockRule = new WireMockRule(8089); // 构造函数不带参数式,默认为8080端口

现在,你可以像下面这样编写测试用例:

Java

1234567891011121314151617 <a href=’http://www.jobbole.com/members/madao’>@Test</a>public void exampleTest() {    stubFor(get(urlEqualTo(“/my/resource”))            .withHeader(“Accept”, equalTo(“text/xml”))            .willReturn(aResponse()                .withStatus(200)                .withHeader(“Content-Type”, “text/xml”)                .withBody(“<response>Some content</response>”)));     Result result = myhttperviceCallingObject.doSomething();     assertTrue(result.wasSuccessFul());     verify(postRequestedFor(urlMatching(“/my/resource/[a-z0-9]+”))            .withRequestBody(matching(“.*<message>1234</message>.*”))            .withHeader(“Content-Type”, notMatching(“application/json”)));}

更多JUnit测试示例,可以直接参见WireMock验收测试。

要了解更多关于请求和桩响应细节,可以参见桩和验证。

#p#分页标题#e#

更多JUnit规则,可以参见JUnit 4.x规则。

开发资源

  • 上手指南
  • 作为独立进程运行
  • http
  • JUnit 4.x规则
  • Java(非JUnit)用法
  • 验证
  • 代理
  • 记录和回放
  • 带状态的行为
  • 错误模拟
  • 扩展WireMock
  • 官方网站:http://wiremock.org/
    开源地址:http://github.com/tomakehurst/wiremock

    打赏支持我整理更多优质资源,谢谢!

    打赏编辑

    打赏支持我整理更多优质资源,谢谢!

    任选一种支付方式

    WireMock:Web Service测试桩和模拟

    WireMock:Web Service测试桩和模拟

     

      关键字:

    在线提交作业


      关键字:

    在线提交作业