美文网首页
测试进阶Mockserver之Moco框架搭建使用

测试进阶Mockserver之Moco框架搭建使用

作者: 公子小白123 | 来源:发表于2021-10-25 21:31 被阅读0次

客户要求进行完整的产品展示,人员和时间都有限,来不及开发后端服务。。。

工期比较紧的项目,前端已开发完成,需要调试,后端接口还未开发完成。。。

公司某个项目依赖于第三方服务,但是第三方服务不方便频繁调用。。。

实际的工作当中,从商务到开发再到测试,经常会遇到上述所说的情况,如此的反复就造成了项目的进度受限,这被称为短板效应。此时,Moco框架可以很好的解决这些问题。

一、MOCO简介

Moco是基于Java开发的开源项目,是一个简单搭建模拟服务器的框架,可以模拟http、https、

socket等协议。其运行原理是Moco会根据一些配置,启动一个真正的HTTP服务(会监听本地的某

个端口)。当发起的请求满足配置中的条件时,会返回指定的响应数据。

Moco有两种使用模式:API模式和独立运行模式,如果是编写Java应用或者以其它JVM上的语

言编写的应用,可以采用直接调用API的模式;独立运行模式就是下载moco服务jar包,然后根据实

际需要编写配置文件或者进行二次开发。

二、环境配置

1.安装JDK并配置好环境变量,这个不再细说,大家自行百度。

2.下载服务jar包:Moco下载

下载完成的jar包是这样的 moco-runner-1.1.0-standalone.jar ,本文采用的是最新版本。

三、运行Moco

我们新建一个文件夹,命名为Moco,把jar包放在这里,新建test.json文件,内容如下:

[

    {

        "response": {

            "text": "Hello world!"

        }

    }

]

在Moco文件夹中点击鼠标右键打开终端,输入以下命令:

java -jar moco-runner-1.1.0-standalone.jar start -p 8080 -c test.json

1

:jar包存放路径,我这里在同一个文件夹,直接输入jar包名字

:服务监听的端口,设置一个未被占用的端口

:配置文件存放路径

如下图中所示,表示启动成功:

此时,在浏览器中输入: http://localhost:8080 可以看到Hello word!,说明我们搭建的模拟

服务器可以正常使用了。

四、Moco常用配置参数

Moco主要致力于服务器的配置,目前只有两种API:Request 和 Response。两种API都有

各自的属性,在配置使用的过程中,一定要遵循这些方法。

Request 请求

有14个固定属性: method, headers, json, factory, uri, text, cookies, xpaths,json_paths,

version, file, queries,path_resource,forms 。

Response 响应

有12个固定属性: status, attachment, headers, version, factory, file,text, proxy, cookies,

json, latency, path_resource 。

1.普通的GET请求

{

   "description": "查找书籍",

    "request" :

    {

        "method" : "get",

        "uri" : "/article/book/"

    },

    "response" :

    {

        "text" : "响应内容"

    }

}

2.GET方法带参数

{

    "description": "查找具体书籍",

    "request": {

     "method": "get"

        "uri": "/article/book",

        "queries": {

            "name": "kaka",

            "id": "75"

        }

    },

    "response": {

        "text": "响应内容"

    }

}

3.POST方法定义请求头和JSON请求体

[

    {

        "description": "登录",

        "request": {

            "uri": "/login",

            "method": "post",

            "headers": {

                "Content-Type": "application/json"

            },

            "json": {

                "username": "13812345678",

                "password": "123456"

            }

        },

        "response": {

            "text": "login success"

        }

    }

]

4.定义响应结果为JSON格式

[

    {

        "description": "登录",

        "request": {

            "uri": "/login"

        },

        "response": {

            "headers": {

                "Content-Type": "application/json;charset=UTF-8"

            },

            "json": {

                "code": "00",

                "msg": "登录成功",

                "data": {

                    "userId": 5,

                    "token": "jvuRbbA5EKPzJTfZbDAY9SMzq40YBfws"

                }

            }

        }

    }

]

五、Moco实战应用

1.单体配置

将所有的接口请求和返回数据写入到同一个json文件中,这种配置适用于请求报文和响应结果

内容不大的情况,如下图所示将整个配置写入到 config.json 中:

[

  {

    "description": "登录",

    "request": {

      "uri": "/login",

      "method": "post",

      "headers": {

        "Content-Type": "application/json"

      },

      "json": {

        "username": "13312345678",

        "password": "123456"

      }

    },

    "response": {

      "headers": {

        "Content-Type": "application/json;charset=UTF-8"

      },

      "json": {

        "retCode": "00",

        "retMsg": "success",

        "data": {

          "userId": 6,

          "token": "ked6jsdXkjdwm37dy6"

        }

      }

    }

  }

]

在终端中运行启动命令: java -jar D:\Moco\moco-runner-1.1.0-standalone.jar start -p 8080 -c config.json

服务启动后,使用接口测试工具调用该配置中的接口。

2.全局配置

Moco支持在全局的配置文件中引入其他配置文件,我们可以根据实际需要分别定义配置文件,然后在全局

文件中引用。这样,既便于管理,又轻松的解决了接口请求报文或响应数据太大不方便查看的问题。

a.在Moco文件夹中创建login文件夹,在login文件夹中创建 local_login_req.json 和 local_login_res.json 两个

文件;

b.在Moco文件夹中创建 global_settings.json 文件

在 local_login_req.json 中写入:

[

  {

    "description": "登录",

    "request": {

      "uri": "/login",

      "method": "post",

      "headers": {

        "Content-Type": "application/json"

      },

      "json": {

        "username": "13300001122",

        "password": "123456"

      }

    },

    "response": {

        "headers": {

        "Content-Type": "application/json;charset=UTF-8"

      },

        "file": "./login/local_login_res.json"

    }

  }

]

在 local_login_res.json 中写入:

[

    {

        "retCode":"00",

        "retMsg":"登录成功",

        "data":{

            "userId":2,

            "token":"ked6jsdXkjdwm37dy6xm"

        }

    }

]

在 global_settings.json 中写入:

[

    {

        "include":"login/local_login_req.json"

    }

]

准备完成后,在当前目录的终端中输入: java -jar moco-runner-1.1.0-standalone.jar start -p 8080 -g global_settings.json

注意:在启动服务的命令中, -c 是加载单体配置文件, -g 是加载全局配置文件。两者不可以混淆,否则配置文件解析会报错。

相关文章

  • 测试进阶Mockserver之Moco框架搭建使用

    客户要求进行完整的产品展示,人员和时间都有限,来不及开发后端服务。。。 工期比较紧的项目,前端已开发完成,需要调试...

  • MOCO框架

    Mock平台功能介绍 不仅可给自己使用,还可以给前端使用。 对于测试人员产出!非常重要! Moco框架基本介绍 h...

  • moco框架使用

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

  • moco-runner框架方法使用分享!

    测试的前置往往离不开mock服务的调用 对于moco框架网上大多是下载一个jar包,开启一个moco服务,然后调用...

  • Appium 自动化测试 IOS 真机调试安装以及遇到的问题

    IOS客户端尝试使用Appium框架进行自动化测试,该框架方便定制符合自身业务的测试用例,提高测试效率。在搭建测试...

  • moco常用配置参数及使用

    moco简介 moco框架是github上的一个开源项目,本身支持API和独立运行两种方式。通过使用API,开发人...

  • 如何使用moco框架搭建接口mock服务!

    1、什么是接口Mock测试? 应用场景思考?1.在前后端分离的项目中,假如后端代码还未开发完,前端代码需要调用后端...

  • MockServer搭建

    在前后端并行开发时,需要搭建简易MockServer服务。 GitLab负责接口文章管理; Jenkins负责与监...

  • 『居善地』接口测试 — 21.Mock功能介绍(二)

    6、Moco框架的使用 当需要调用接口来编写测试用例的时候,此时该接口并没有被实现,这个时候我们就可以用Mock框...

  • TestNG

    很多公司的测试框架都是基于已有的测试框架搭建的,而testNG是里面被用到很多的一种 最近在使用的自动化框架便是基...

网友评论

      本文标题:测试进阶Mockserver之Moco框架搭建使用

      本文链接:https://www.haomeiwen.com/subject/qgmsaltx.html