mock详解

一、Mock测试的含义

mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法     

二、Mock的使用场景

1、mock接口测试解耦

做自动化测试时,我们最希望的就是某些业务关系的耦合度不要太高。   举个电商系统的例子,我就想测试一下“确认收货”功能,但是由于耦合度的关系,不得不从创建订单、分配、出库、发货等流程走下去,最后才能到“收货”。  前面的某个步骤运行失败,导致后面的功能连串失败,实际我们不关心前面的功能,就只想看看“收货”功能,这样就使得非常困扰。 

mock的出现使得我们可以直接自定义地创建某个接口的返回值,供下个接口调用。

2、mock处理服务端依赖

在项目开发过程中,大家有没有遇到这类场景。  “后端开发还没给我提供接口,我这个页面没法做啊”,前端开发比较依赖后端开发提供的接口,然后根据接口返回值设计各类场景页面。当服务端开发人员未及时提供接口时可能会影响到前端开发及整个项目的进度。   特别是在敏捷开发中,对于上下游开发顺序更加依赖、

mock可以模拟出未开发的接口,前端人员可以调用自定义返回值,提高开发效率

三、常见的三种mock方式

1、moco工具

运行环境: 

  • Java运行环境
  • moco-runner-0.12.0-standalone.jar   

运行步骤:

1)下载一个 moco-runner-0.12.1-standalone.jar 文件 ,下载地址如上

2)在与 moco-runner-0.12.1-standalone.jar 同级的目录下创建 一个json 文件,例如  dai.json

dai.json文件里面的内容如下:

[
  {
    "description":"api测试",
    "request":{
      "uri":"/getdemo",
      "method":"get"
    },
    "response":{
      "json":
      {
      "code" :1,
      "result" : "success",
      "tester" : "dx"
      }
    }
  }
]

3)控制台启动Mock Server服务

java -jar <path-to-moco-runner> https -p <monitor-port> -c < configuration -file> --https <path-to-cert.jks > --cert mocohttps --keystore mocohttps

<path-to-moco-runner>:moco-runner-0.11.0-standalone.jar包的路径
<monitor-port>:http服务监听的端口
<configuration -file>:配置文件路径
<path-to-cert.jks>:证书路径

在moco的目录下   运行 java -jar  moco-runner-0.12.0-standalone.jar http -p 5812 -c dai.json      (这就在本地启动了一个http server,其中监听端口是5812,配置文件是dai.jsonr)

当出现如下信息时表示Mock Server启动成功:

4)现在可以通过浏览器来访问此接口地址:

http://localhost:5812/

浏览器结果返回成功 :

至此,使用moco的方式搭建Mock Server完成,此时使用Postman进行接口测试时可以直接调用此接口、

2、使用python下的mock库

  python 2需要安装mock库  (pip install -U mock)

  python 3不用安装,mock集成到unittest库下面

-----------------------------未完待续-----------------------------------------

原文地址:https://www.cnblogs.com/jsondai/p/9682292.html