如何使用Mock

使用场景:

测试代码已经写好,开发代码还没写好,没有提测过来,这时候就可以使用mock来进行调试。

1、Moco框架

jar包下载地址:

https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/

2、moco的启动Demo

(1)将下载好的jar包放到工程下

(2)在工程下新建文件startup.json

[
  {
    "description": "这是我们的第一个mock的例子",

    "request": {

      "uri": "/demo"

    },

    "response": {

      "text": "这是第一个moco框架Demo"

    }
  }
]

(3)在此目录下执行命令,成功

java -jar ./moco-runner-0.11.0-standalone.jar http -p 8888 -c startup1.json

在浏览器输入json文件startup1.json的目录,成功显示出。

3、Moco框架的http协议get方法Mock实现

[

  {

    "description": "模拟一个没有参数的get请求",

    "request": {

      "uri": "/getdemo",

      "method": "get"

    },

    "response": {

      "text": "这是一个没有参数的get请求"

    }

  },

  {

    "description": "模拟一个带参数的get请求",

    "request":{

      "uri": "/getwithparam",

      "method": "get",

      "queries": {

        "name": "zhangsan",

        "age": "11"

      }

    },

    "response": {

      "text": "张三来了!"

    }

  }

]

在终端执行(热部署,执行一次即可):

java -jar ./moco-runner-0.11.0-standalone.jar http -p 8888 -c startupGet.json

(1)不带参数:http://localhost:8888/getdemo

(2)带参数:http://localhost:8888/getwithparam?name=zhangsan&age=11

4、Moco框架的http协议post方法Mock实现

[

  {

    "description": "模拟一个post请求",

    "request": {

      "uri": "/postdemo",

      "method": "post"

    },

    "response": {

      "text": "这是我的第一个mock的post请求"

    }

  },

  {

    "description": "这是一个带参数的post请求",

    "request": {

      "uri": "/postwithparam",

      "method": "post",

      "forms": {

        "name": "zhangsansan",

        "sex": "man"

      }

    },

    "response": {

      "text": "post带参数了"

    }

  }

]

在jmeter里面模拟发送http请求

无参请求:

结果:

带参数:

(使用“forms”关键字,在表格中加入参数)

结果:

5、带cookies信息的get和post请求

[

  {

    "description": "这是一个带cookies信息的get请求",

    "request": {

      "uri": "/get/with/cookies",

      "method": "get",

      "cookies": {

        "login": "true"

      }

    },

    "response": {

      "text": "这是一个携带cookies信息才能访问的配置文件"

    }

  },

  {

    "description": "这是一个带cookies信息的post请求",

    "request": {

      "uri": "/post/with/cookies",

      "method": "post",

      "cookies": {

        "login": "true"

      },

      "json": {

        "name": "zhangsan",

        "age": "18"

      }

    },

    "response": {

      "status": 200,

      "json": {

        "zhangsan": "success",

        "status": "1"

      }

    }

  }

]

在jmeter新建一个cookies管理器

加一条cookies信息,注意补全Domain域名,和Path,不然会报错。

注意post请求参数用的“json”关键字,则用json格式,写在Body Data里面,与forms关键字不一样。

结果返回也可以用“json”格式

6、带headers信息的mock请求

[

  {

    "description": "这是一个带header信息的post请求",

    "request": {

      "uri": "/post/with/headers",

      "method": "post",

      "headers": {

        "content-type": "application/json"

      },

      "json": {

        "name": "wanglaosi",

        "sex": "woman"

      }

    },

    "response": {

      "json": {

        "wanglaosi": "success",

        "status": "1"

      }

    }

  }

]

在jmeter新建一个header管理器

添加header信息

结果

7、如何进行重定向

[

  {

    "description": "重定向到百度",

    "request": {

      "uri": "/redirect"

    },

    "redirectTo": "http://www.baidu.com"

  }

]

输入自己的地址http://localhost:8888/redirect,打开百度的页面

也可以重定向到自己的地址

{

  "description": "重定向到自己的网页上",

  "request":{

    "uri": "/redirect/topath"

  },

  "redirectTo": "/redirect/new"

},

{

  "description": "这是被重定向到的请求",

  "request": {

    "uri": "/redirect/new"

  },

  "response": {

    "text": "重定向成功了"

  }

}

浏览器输入地址http://localhost:8888/redirect/topath,自动访问到新地址

8、总结

(1)我们可以使用mock框架来模拟接口,通过新建一个json格式的文件,写下“description”、“request”、“response”信息,通过端口命令启动服务:

java -jar ./moco-runner-0.11.0-standalone.jar http -p 8888 -c startupCookies.json

http请求,-p表示端口号,-c表示哪一个程序。此服务是热部署,只需要启动一次,直接修改测试即可。

(2)通过jmeter可以模拟发送http请求,带有cookies、header信息的,添加一个相应的管理器。

(3)在编写json时,get请求带的参数用关键字“queries”,访问时参数加在url后面,例如:“?name=zhangsan&age=18”,代表2个参数信息。post请求的参数,使用关键字“forms”,在发送请求时,在参数表格中添加参数信息;使用“json”在Data Body中添加json格式参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值