MockWebServer使用指南

原创 2016年10月09日 22:59:47

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771797
本文出自: 【HansChen的博客】


MockWebServer介绍

MockWebServer是square出品的跟随okhttp一起发布,用来Mock服务器行为的库。MockWebServer使用在单元测试中,专门用来测试http请求。其原理是启动了一个本地web server,监听了本地某个端口。所以在测试的时候,需要把请求的url替换为MockWebServer提供的地址,然后web server会handle请求,记录请求,根据预设的stubbing进行反馈。MockWebServer提供接口,让我们可以在发起请求之后,验证请求是否和预期的一样,比如验证header、path等等。

MockWebServer能帮我们做什么

MockWebServer可以mock反馈,验证请求,以下是MockWebServer能帮我们做的事情:

  • 可以设置http response,设置response的header、body、status code等
  • 可以记录接收到的请求,获取请求的body、header、method、path、HTTP version(在单元测试中很有用)
  • 可以模拟网速慢的网络环境
  • 提供Dispatcher,让mockWebServer可以根据不同的请求进行不同的反馈

MockWebServer不能帮我们做什么

MockWebServer是在单元测试中启动一个web server的,主要用于测试验证。并不能像tomcat、moco一样,独立运行一个web server服务。如果需要长期运行一个web server,请选用moco或者tomcat等来搭建一个web server

MockWebServer环境配置

Android Studio中使用MockWebServer很简单,只需要在build.gradle文件中加入依赖即可。如图:
这里写图片描述

添加依赖之后,点击sync,即可自动下载:
这里写图片描述

MockWebServer一般步骤

  1. 为mock server设置response
  2. 客户端发起请求
  3. 用mockWebServer记录的请求进行验证

下面是一个使用的例子:
这里写图片描述

MockWebServer使用方法

添加预置的响应

这里写图片描述

预置的相应,会按照添加的顺序依次返回给客户端。可以给MockResponse设置header、状态码、body。

模拟网速慢的情况

这里写图片描述

设置这个MockResponse返回的时候,以低速率传输。

RecordedRequest的使用

这里写图片描述

按顺序从web server把接收到的request取出来,这是一个阻塞的方法,会一直等待到web server接收到了请求之后再返回。RecordedRequest可以帮助我们验证我们的请求客户端是否按预期生成了请求,可以验证的内容分别有:

  • 请求method
  • 请求path
  • 请求header
  • 请求body
  • 请求HTTP version

Dispatcher的使用

有时候我们希望web server能根据我们的请求返回不同的response,dispatcher可以帮助我们做到这个,使用方法如下:
这里写图片描述

开发者也可以根据不同的设定(如method、header等)放回不同的响应。

版权声明:本文为博主原创文章,转载请标明出处,谢谢

MockWebServer浅谈

MockWebServer浅谈MockWebServer浅谈 简介 示例 Api接口 模拟ResponseMockResponse 记录请求RecordedRequest 转发器Dispatcher ...
  • xia215266092
  • xia215266092
  • 2016年07月23日 16:46
  • 3054

MockWebServer

OkHttp MockWebServer 参考文档
  • u010278882
  • u010278882
  • 2016年02月23日 14:15
  • 1098

MockWebServer API Javadoc

MockWebServer Javadoc
  • u010278882
  • u010278882
  • 2016年02月23日 16:41
  • 603

Mock Server实践

Mock Server实践
  • xinxin19881112
  • xinxin19881112
  • 2016年08月22日 20:09
  • 2670

【前端开发】 5分钟创建 Mock Server

今天,我们打算花几分钟时间创建一个自己用来测试的 MockUp 服务器。因为我是前端开发,所以这里使用 Node.js 创建一个简单的迷你工程来完成!目标用 curl 访问 mockserver 可以...
  • wxqee
  • wxqee
  • 2015年12月03日 20:07
  • 19229

使用mockserver来进行http接口mock

前言 进行单元测试时,必须要mock掉第三方的依赖调用,而mockserver提供了足够的api来支持这种http的mock,现在简单介绍如何使用mockserver进行http接口mock。 依...
  • heymysweetheart
  • heymysweetheart
  • 2016年08月17日 06:49
  • 9976

开源mock server系统

小强软件测试,因为不是天生丽质,所以必须天生励志。 性能、python自动化班长期招生,咨询QQ:2083503238 官网:http://xqtesting.sxl.cn QQ群:...
  • xqtesting
  • xqtesting
  • 2017年02月17日 09:56
  • 889

模拟服务器MockServer之Moco详细介绍

前面一篇介绍了如何用mockito来测试我们的一些异步任务,例如网络请求时候的异步回调。  现在做进一步的介绍,一个模拟我们的服务器的东东–moco 先运行起来 请先下载这个文件moco...
  • vite_s
  • vite_s
  • 2017年01月17日 15:05
  • 1478

mock server —— 用于自动化测试

我们在测试某个模块的时候,该模块会依赖很多外部http server,真实搭建这样的server有两个缺点:1、部署维护成本较大,太重不适合自动化测试,2、网络异常、超时、返回部分结果等特殊情况很难测...
  • sharpljc
  • sharpljc
  • 2012年11月01日 01:20
  • 2040

使用mockwebserver对http与https进行网络测试

在对Android项目进行网络测试时,特别是当与服务器有交互时,使用真实服务环境进行测试是非常不可取的,因为网络环境无法控制,容易导致用例失败。此时有测试者会自己搭建测试服务器(常用tomcat或no...
  • aprilxiaomeixiaomei
  • aprilxiaomeixiaomei
  • 2016年01月25日 16:04
  • 1567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MockWebServer使用指南
举报原因:
原因补充:

(最多只允许输入30个字)