一、moco简介
moco框架是github上的一个开源项目,可模拟http,https,Socket协议 。
mock测试就是在测试过程中,对于某些不容易构造 或者 不容易获取的对象 又或者 开发还未完成开发的功能实现,用一个虚拟的对象来创建以便测试的测试方法 。
二、moco框架的下载及启动
下载:https://github.com/dreamhead/moco
这里我的moco目录结构是在同一文件夹下,这样的:
文章插图
启动:JAVA -jar moco-runner-1.0.0-standalone.jar http -p 2222 -c get_data.json (启动协议为http的mock服务,服务端口2222)
三、模拟GET请求
以下是模拟get请求已经写好的要模拟数据,包括请求uri,method,参数,响应内容
1 [ 2{ 3"description":"不带参数的get请求", 4"request":{ 5"uri":"/withGetDemo", 6"method":"get" 7}, 8"response":{ 9"text":"这是不带参数的get请求"10}11},12{13"description":"带参数的get请求,p1,p2分别的参数1,参数2,名称可随便起,个数也可随便加",14"request":{15"uri":"/wihtGetDemobyParam",16"method":"get",17"queries":{18"p1":"hh",19"p2":"good"20}21},22"response":{23"text":"这是带参数的get请求"24}25}26 ]这里我用浏览器模拟第一个get请求,得到的响应如下:文章插图
这里我用postman模拟第二个带有请求参数的get请求,得到的响应如下:
文章插图
四、模拟POST请求
以下为post请求的几种请求方式:
1、不带参数的post请求
【moco框架的使用】2、带参数的post请求
3、带cookie的post请求
4、带header的post请求
模拟的返回响应数据如下
1 [ 2{ 3"description":"不带参数的post请求", 4"request":{ 5"uri":"/postDemo", 6"method":"post" 7}, 8"response":{ 9"text":"这是不带参数的post请求"10}11},12{13"description":"带参数的post请求",14"request":{15"uri":"/postDemoWithParam",16"method":"post",17"forms":{18"param1":"one",19"param2":"two"20}21},22"response":{23"json":{"name":"han","age":30,"address":"beijing daxing"}24}25},26{27"description":"带cookie的Post请求",28"request":{29"uri":"/postDemoWithCookies",30"method":"post",31"cookies":{32"login":"true"33},34"json":{35"name":"hi",36"age":"3"37}38},39"response":{40"status":"200",41"json":{42"name":"success",43"status":"1"44}45}46},47 48{49"description":"带header的post请求",50"request":{51"uri":"/withHeader",52"method":"post",53"headers":{54"content-type":"Application/json"55},56"json":{57"name":"xiaoming",58"age":"18"59}60},61"response":{62"json":{63"message":"success",64"status":"1"65}66}67}68 ]以下为用postman模拟请求1、不带参数的post请求
文章插图
2、带参数的post请求(这里用的application/x-www-form-urlencoded)
推荐阅读
- 软件测试中的可用性、可维护性、可靠性有什么区别?
- 企业做网络营销的12种方法
- |老板是个专情的人吗?
- 地线的作用,插座接不接地线的危害?你知道吗?
- 香辣猪蹄
- 松香熏猪手
- 啤酒蛋卤肉
- 肉皮小炒
- 水晶牛肉
- 香椿炒腊肉
