Java接口自動化(四)Mock

Mock接口平臺功能介紹:

java -jar -Dfile.encoding=UTF-8 moco-runner-0.11.0-standalone.jar http -p 8888 -c startup1.json

moco框架基本介紹:
1.下載mocojar包
2.如何啟動moco (java -jar moco-runner-0.11.0-standalone.jar http -p 8888 -c jsondemo)
3.第一個demo 訪問:localhost:8888/demo
4.jsondemo文件內(nèi)容

[
  {
    "description":"這是我們的第一個mock例子",
    "request":{
    "uri":"/demo"
    },
    "response":{
      "text":"第一個mock框架demo"
    }
    }
]

1.不帶參數(shù)的get方法實現(xiàn)

[
  {
    "description":"這是我們的第一個mock例子",
    "request":{
    "uri":"/demo",
    "method":"get"
    },
    "response":{
      "text":"第一個mock框架demo"
    }
    }
]

2.帶參數(shù)的get方法實現(xiàn)

[
  {
    "description":"這是我們的第一個mock例子",
    "request":{
    "uri":"/demo",
    "method":"get",
     "queries":{
          "name":"huhanssan",
          "age":"18"
      }
    },
    "response":{
      "text":"第一個mock框架demo"
    }
    }
]

3.帶參數(shù)的post方法實現(xiàn)

[
  {
    "description":"這是我們的第一個mock例子",
    "request":{
    "uri":"/demo",
    "method":"post",
     "forms":{
          "name":"huhanssan",
          "age":"18"
      }
    },
    "response":{
      "text":"第一個mock框架demo"
    }
    }
]

4.帶cookies的get方法實現(xiàn)

[{
"description":"這是我們的第一個mock例子",
    "request":{
    "uri":"/demo",
    "method":"get",
    "cookies":{
    "login":"true"
    },
  "response":{
  "test":"這是一個帶cookies的get方法實現(xiàn)"
}
}]

5.帶cookies的post方法實現(xiàn)

[
{
    "description":"帶cookies的post請求",
    "request":{
        "uri":"/post/with/cookies",
        "method":"post",
        "cookies":{
            "login":"true"
        },
        "json":{
            "name":"zhangssna",
            "age":"18"
        }
    
    },
    "response":{
        "status":"200",
        "json":{
            "huhansan":"success",
            "status":"1"
        }
    }
}
]

6.moco框架中如何加入header

[
{
    "description":"帶cookies的post請求",
    "request":{
        "uri":"/post/with/headers",
        "method":"post",
        "headers":{
            "content-type":"application/json"
        },
        "cookies":{
            "login":"true"
        },
        "json":{
            "name":"zhangssna",
            "age":"18"
        }
    
    },
    "response":{
        "status":"200",
        "json":{
            "huhansan":"success",
            "status":"1"
        }
    }
}
]

7.重定向

[
    {
        "description":"重定向到百度",
        "request":{
            "uri":"/redirect",
        
        },
        "redirectTo":"http://www.baidu.com"
        
    },
    {
        "description":"重定向到自己的網(wǎng)頁上",
        "request":{
            "uri":"/redirect/topath",
        },
        "redirectTo":"/redirect/topath"
        
    },
]

類似:

1.簡介

mock用來模擬接口的虽填,本次學習mock用的是moco框架怯邪,moco框架是github上的一個開源項目,可以模擬一些http,https,Socket協(xié)議漾岳。

2.實際場景

比如前后臺開發(fā)的時候窿凤,如果后端接口沒有開發(fā)完梅誓,但是前臺同志需要接口來調(diào)試自己的頁面勃教,這時候就可以利用mock來模擬自己想要的接口和數(shù)據(jù)。

3.啟動

moco框架是github上的一個開源項目踢星,可以把這個項目源碼拿下來使用 gradle編譯為一個jar,也可以網(wǎng)上直接找 jar 包下載。這里提供一個jar的下載 地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar 里面也有很多個版本隙咸,選擇最大的那個包即可沐悦。

啟動命令如下:
java -jar -Dfile.encoding=UTF-8 ./moco-runner-0.11.0-standalone.jar 協(xié)議類型 -p 端口號 -c json配置文件

4.demo示例

我的操作在IDEA環(huán)境中執(zhí)行,可以在本機環(huán)境隨便一個目錄執(zhí)行五督,但是需要安裝 jdk 藏否。
第一步:在IDEA中創(chuàng)建目錄 Chapter7,把下載好的jar包 moco-runner-0.11.0-standalone.jar 放在目錄下充包,創(chuàng)建一個json的demo文件 startup1.json
里面的內(nèi)容如下:

[
  {
    "description":"這是我們的第一個mock例子",
    "request":{
      "uri":"/demo"
    },
    "response":{
      "text":"我是第一個mock例子"
    }

  }

]

json的語法葉有點了解的副签,不然總是會寫錯。
description 程序不會識別基矮,是寫給我們自己看的继薛。
request 是請求,里面的 uri 是我們訪問應用的時候拼接在端口后面的路徑愈捅。
response 是響應遏考。

執(zhí)行: java -jar -Dfile.encoding=UTF-8 ./moco-runner-0.11.0-standalone.jar http -p 8888 -c startup1.json

返回如下代表啟動成功。

image

瀏覽器訪問 http://localhost:8888/demo 返回如下:

image

5.get請求

5.1.不帶參數(shù)的get請求
[
  {
    "description":"模擬一個沒有參數(shù)的get請求",
    "request":{
      "uri":"/getdemo",
      "method":"get"
    },
    "response":{
      "text":"這是一個沒有參數(shù)的get請求"
    }

  }
]

瀏覽器訪問 http://localhost:8888/getdemo

5.2.帶參數(shù)的get請求
[
 {
    "description":"這是一個帶參數(shù)的get請求",
    "request":{
      "uri":"/getwithparam",
      "method":"get",
      "queries": {
        "name": "huhansan",
        "age": "18"
        }
      },
      "response":{
        "text":"我胡漢三又回來了@督鳌灌具!"
      }

    }

]

瀏覽器訪問 http://localhost:8888/getwithparam?name=huhansan&age=18

6.post請求(帶參數(shù)和不帶參數(shù))

[
  {
    "description":"模擬一個post請求",

    "request":{
      "uri":"/postdemo",
      "method":"post"
    },

    "response":{
      "text":"這是我的第一個mock的post請求"
    }

  },

  {
    "description":"這是一個帶參數(shù)的post請求",
    "request":{
      "uri":"/postdemoparam",
      "method":"post",
      "forms":{
        "name":"huhansan",
        "sex":"man"
      }
     },
    "response":{
      "text":"胡漢三帶參數(shù)來了"
    }
  }
]

這里要注意的是 post的傳參和get不一樣,get里面用的 :
"queries": {
"name": "huhansan",
"age": "18"
}
但是 post 是用的 :
"forms":{
"name":"huhansan",
"sex":"man"
}
也可以用json格式:
"json": {
"name": "huhansan",
"age": "18"
}
但是如果用了 json格式再訪問的時候也記得使用 json格式傳參哈~

post接口的調(diào)用需要借助工具譬巫,我使用的postman咖楣。

image
image

7.帶cookies的請求(get & post)

[
  {
    "description":"這是一個帶cookies信息的get請求",
    "request":{
      "uri":"/get/with/cookies",
      "method":"get",
      "cookies":{
        "login":"true"
      }
    },
    "response":{
      "text":"這是一個需要攜帶cookies信息的get請求"
    }

  },

  {
    "description":"這是一個帶cookies信息的post請求",

    "request": {
      "uri": "/post/with/cookies",
      "method": "post",
      "cookies": {
        "login": "true"
      },
      "json": {
        "name": "huhansan",
        "age": "18"
      }
    },

      "response":{
        "status":200,
        "json":{
          "huhansan":"success",
          "status":"1"
        }
      }

  }

]

訪問的時候在頭信息加上cookie即可。

8.帶請求頭(headers)的請求(post)

[
  {
    "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"
      }
    }

  }

]

訪問的時候加上請求頭信息即可芦昔。

9.重定向

[
  {
    "description":"重定向到百度",
    "request":{
      "uri":"/redirect"
    },
    "redirectTo":"http://www.baidu.com"
  },

  {
    "description":"重定向自己的網(wǎng)頁上",
    "request":{
      "uri":"/redirect/topath"
    },
    "redirectTo":"/redirect/new"
  },

  {
    "description":"這是被重定向的請求",
    "request":{
      "uri":"/redirect/new"
    },
    "response":{
      "text":"重定向成功啦诱贿。。"
    }
  }
]

第一個訪問 http://localhost:8888/redirect 跳轉(zhuǎn)到百度咕缎,
第二個訪問 http://localhost:8888/redirect/topath 返回 重定向成功啦珠十。。就代表重定向成功凭豪。

完了焙蹭,雖然不多,但是感覺收獲不少呢嫂伞。

作者:飛翼_U
鏈接:http://www.reibang.com/p/2270360a827f
來源:簡書
著作權(quán)歸作者所有孔厉。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)拯钻,非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撰豺,一起剝皮案震驚了整個濱河市粪般,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌污桦,老刑警劉巖亩歹,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寡润,居然都是意外死亡捆憎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門梭纹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躲惰,“玉大人,你說我怎么就攤上這事变抽〈〔Γ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵绍载,是天一觀的道長诡宗。 經(jīng)常有香客問我,道長击儡,這世上最難降的妖魔是什么塔沃? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮阳谍,結(jié)果婚禮上蛀柴,老公的妹妹穿的比我還像新娘。我一直安慰自己矫夯,他們只是感情好鸽疾,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著训貌,像睡著了一般制肮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上递沪,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天豺鼻,我揣著相機與錄音,去河邊找鬼区拳。 笑死拘领,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的樱调。 我是一名探鬼主播约素,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笆凌!你這毒婦竟也來了圣猎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤乞而,失蹤者是張志新(化名)和其女友劉穎送悔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爪模,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡欠啤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屋灌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洁段。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖共郭,靈堂內(nèi)的尸體忽然破棺而出祠丝,到底是詐尸還是另有隱情,我是刑警寧澤除嘹,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布写半,位于F島的核電站,受9級特大地震影響尉咕,放射性物質(zhì)發(fā)生泄漏叠蝇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一年缎、第九天 我趴在偏房一處隱蔽的房頂上張望悔捶。 院中可真熱鬧,春花似錦晦款、人聲如沸炎功。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛇损。三九已至,卻和暖如春坛怪,著一層夾襖步出監(jiān)牢的瞬間淤齐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工袜匿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留更啄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓居灯,卻偏偏與公主長得像祭务,于是被迫代替她去往敵國和親内狗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349