<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Mock框架moco學(xué)習(xí)筆記

      一、Moco框架基本介紹

      1. 什么是Moco

      moco是一個(gè)簡(jiǎn)單搭建模擬服務(wù)器的程序庫(kù)/工具,是一個(gè)簡(jiǎn)單單間stub的框架,主要用于測(cè)試和集成。
      Mock可以提供以下協(xié)議和類型的mock服務(wù):

      • HTTP APIs
      • Socket APIs
      • REST API

      2. Moco原理簡(jiǎn)介

      • Moco會(huì)根據(jù)一些配置啟動(dòng)一個(gè)真正的HTTP服務(wù)(監(jiān)聽(tīng)本地的某個(gè)端口)。當(dāng)發(fā)起請(qǐng)求滿足一個(gè)條件時(shí),它就回復(fù)一個(gè)應(yīng)答。Moco的底層沒(méi)有依賴于像Servlet這樣的重型框架,而是基于一個(gè)叫Netty網(wǎng)絡(luò)應(yīng)用框架,這樣就繞過(guò)了復(fù)雜的應(yīng)用服務(wù)器。
      • Moco本身支持API和獨(dú)立運(yùn)行兩種方式,通過(guò)使用API,測(cè)試開(kāi)發(fā)人員可以在JUnit、JBehave等測(cè)試框架中使用Moco。也可以世界通過(guò)Json腳本使用。

      3. Moco的配置和運(yùn)行

      java運(yùn)行環(huán)境+moco-runner.0.11.0-standalone.jar
      jar包的下載地址:
      https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/
      可以下載jar包:

      4. Moco啟動(dòng)以及第一個(gè)demo

      啟動(dòng)命令:
      java -jar ./moco-runner-0.11.0-standalone.jar 服務(wù)類型 -p 端口號(hào) -c json配置文件
      例如:
      java -jar ./moco-runner-0.11.0-standalone.jar http -p 8809 -c startup.json
      如果要帶路徑:
      java -jar "D:/moco-runner-0.11.0-standalone.jar" http -p 8809 -c "D:\startup.json"

      說(shuō)明:
      本地啟動(dòng)了一個(gè)http Server,其中監(jiān)聽(tīng)端口是8809,配置文件是 startup.json。用戶可以在本機(jī)發(fā)起一個(gè)請(qǐng)求,如 http://localhost:8809,json不支持注釋。description 字段中可以寫(xiě)注釋。

      二、mock 的啟動(dòng)及第一個(gè)demo

      1. 創(chuàng)建startup.json文件

      [
        {
          "description": "這是我們的第一個(gè)mock例子",
          "request": {
            "uri": "/demo"
          },
          "response": {
            "text": "Hello world"
          } 
        } 
      ]
      

      2. 啟動(dòng)moco

      java -jar ./moco-runner-0.11.0-standalone.jar http -p 8809 -c startup.json

      3. 瀏覽器輸入本地網(wǎng)址127.0.0.1:8809/demo


      這個(gè)是一個(gè)不帶參數(shù)的get方法

      注意:修改json文件不用重新部署,服務(wù)熱部署,會(huì)自動(dòng)重啟

      三、不帶參數(shù)的get方法:Method(GET)

      [
        {
          "description": "模擬一個(gè)沒(méi)有參數(shù)的get請(qǐng)求",
          "request": {
            "uri": "/getdemo",
            "method": "get"
          },
          "response": {
            "text": "This is a request with no paramerters"
          }
        }
      ]
      

      請(qǐng)求結(jié)果:

      四、帶參數(shù)的get方法:queries

      [
        {
          "description": "模擬一個(gè)有參數(shù)的get請(qǐng)求",
          "request": {
            "uri": "/getdemo",
            "method": "get",
            "queries": {
              "name": "1",
              "age": "2"
            }
          },
          "response": {
            "text": "This is a GET request with two paramerters"
          }
        }
      ]
      

      請(qǐng)求結(jié)果:

      五、不帶參數(shù)的post方法:Method(Post)

      • json內(nèi)容:
      [
        {
          "description": "模擬一個(gè)沒(méi)有參數(shù)的post請(qǐng)求",
          "request": {
            "uri": "/postdemo",
            "method": "post"
          },
          "response": {
            "text": "這是一個(gè)沒(méi)參數(shù)的post請(qǐng)求",
            "headers":{
              "Content-Type":"text/html;charset=gbk"
            }
          }
        }
      ]
      
      • 啟動(dòng):
      java -jar ./moco-runner-0.11.0-standalone.jar http -p 8899 -c startupPost.json
      
      • 使用jemeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求
        3)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)
        4)HTTP請(qǐng)求添加參數(shù)

        5)查看結(jié)果:

      六、帶參數(shù)的post方法:Forms

      • json內(nèi)容:
      [
        {
          "description": "模擬一個(gè)有參數(shù)的post請(qǐng)求",
          "request": {
            "uri": "/with/params/postdemo",
            "method": "post",
            "forms": {
              "name": "1",
              "age": "2"
            }
          },
          "response": {
            "text": "這是一個(gè)有參數(shù)的post請(qǐng)求",
            "headers":{
              "Content-Type":"text/html;charset=gbk"
            }
          }
        }
      ]
      
      • 啟動(dòng):
      java -jar ./moco-runner-0.11.0-standalone.jar http -p 8899 -c startupPost.json
      
      • 使用jemeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù)

        3)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)

      七、Moco框架中如何加入Cookies

      1. 請(qǐng)求中帶cookies信息的get請(qǐng)求

      • json內(nèi)容:
      [
       {
          "description":"這是一個(gè)request請(qǐng)求中帶cookies信息的get請(qǐng)求",
          "request":{
            "uri":"/get/with/cookies",
            "method":"get",
            "cookies":{
              "login":"true"
            }
          },
          "response":{
            "text":"返回這是一個(gè)request請(qǐng)求中帶cookies信息的get請(qǐng)求"
          }
        }
      ]
      
      • 啟動(dòng)服務(wù):
      java -jar ./moco-runner-0.11.0-standalone.jar http -p 8899 -c startupPost.json
      
      • 使用jmeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù)

        3)添加HTTP cookie管理器:

        4)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)

      2. 請(qǐng)求中帶cookies的post請(qǐng)求

      • json內(nèi)容:
      [
      {
        "description":"這是一個(gè)帶cookies信息的post請(qǐng)求",
        "request":{
          "uri":"/post/with/cookies",
          "method":"post",
          "cookies":{
            "login":"true"
          },
          "json":{
            "name":"huhansan",
            "age":"18"
          }
        },
        "response":{
          "status":200,
          "json":{
            "huhansan":"success",
            "status":"1"
          },
          "headers":{
            "Content-Type":"text/html;charset=gbk"
          }
        }
      }
      ]
      
      • 使用jmeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù)

        3)添加HTTP cookie管理器:同上
        4)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)


      3. response返回中帶有cookies信息的get請(qǐng)求

      • json內(nèi)容:
      [
      {
        "description":"模擬response返回中帶有cookies信息的get請(qǐng)求",
        "request":{
          "uri":"/resopnse/with/cookies",
          "method":"get"
        },
        "response":{
          "cookies":{
            "login":"true",
            "token":"1234567890"
      
          },
          "json":{
            "name":"zhoujielun",
            "age":"38"
          }
        }
      }
      ]
      
      • 使用jmeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù)

        3)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)

      4. 帶header信息的post請(qǐng)求

      • json內(nèi)容:
      [
        {
          "description":"這是一個(gè)帶header信息的post請(qǐng)求",
          "request":{
            "uri":"/post/with/headers",
            "method":"post",
            "headers":{
                "content-type":"application/json"      
            },
            "json":{
                "name":"huqiqi",
                "sex":"women"      
            }
          },
          "response":{
            "json":{
                "huqiqi":"success",
                "status":1                    
            }
        }
      ]
      
      • 使用jmeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù)

        3)jemeter添加HTTP信息頭管理器:


        4)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)


      八、Moco框架中如何進(jìn)行重定向

      1. 有重定向的接口(redirectTo)

      • json內(nèi)容:
      [
        {
          "description":"模擬重定向接口",
          "request":{
            "uri":"/redirectto"
          },
          "redirectTo":"/redirectedpath"
        },
        {
          "description":"模擬被重定向的接口",
          "request":{
            "uri":"/redirectedpath"
          },
          "response":{
            "text":"返回重定向結(jié)果",
            "headers":{
              "Content-Type":"text/html;charset=gbk"
            }
          }
        }
      ]
      
      • 使用jmeter做接口測(cè)試:
        1)添加線程組
        2)添加Sampler-HTTP請(qǐng)求和參數(shù):HTTP請(qǐng)求勾選Follow Redirects(跟隨重定向):

        3)添加監(jiān)聽(tīng)器-查看結(jié)果樹(shù)

      九、Moco框架響應(yīng)

      1. 約定以指定json作為響應(yīng)

      [
        {
          "request":{
            "uri":"/responseJson"
          },
          "response":{
            "json":{
              "username":"mocor"
            }
          }
        }
      ]
      

      2. 約定Status:模擬各種狀態(tài)碼以達(dá)到我們測(cè)試需要的結(jié)果

      [
        {
          "request":{
            "uri":"/responseStatus"
          },
          "response":{
            "status":200
          }
        }
      ]
      

      3. 約定響應(yīng)Headers

      [
        {
          "request":{
            "uri":"/responseHeaders"
          },
          "response":{
            "headers":{
              "content-type":"application/json"
            }
          }
        }
      ]
      

      4. 約定響應(yīng)Cookies

      [
        {
          "request":{
            "uri":"/responseCookies"
          },
          "response":{
            "cookies":{
              "username":"chenlei"
            }
          }
        }
      ]
      
      posted @ 2023-12-11 14:28  hqq的進(jìn)階日記  閱讀(539)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 扎囊县| 永久免费AV无码国产网站| 国产高清在线不卡一区| 久久婷婷五月综合97色直播| 亚洲欧美日韩在线码| 亚洲成av人片无码天堂下载| 亚洲男人第一无码av网| 亚洲制服无码一区二区三区| 久久精品国产一区二区三| 亚洲成a人在线播放www| 丰满少妇熟乱xxxxx视频| 狠狠干| 粉嫩av蜜臀一区二区三区| 国产精品丝袜一区二区三区| 欧美日韩中文字幕视频不卡一二区 | 国内偷自第一区二区三区| 国产亚洲精久久久久久久91| 在国产线视频A在线视频| 国产激情第一区二区三区| 亚洲 欧美 清纯 校园 另类| 国产成年女人特黄特色大片免费| av在线播放国产一区| 久久国产精品日本波多野结衣 | 精品国产一区二区三区香蕉| 亚洲の无码国产の无码步美| 国产一区二区三区亚洲精品| 国产地址二永久伊甸园| 正在播放酒店约少妇高潮| 国产成人av免费观看| 国产精品无码mv在线观看| 天堂V亚洲国产V第一次| 国产自在自线午夜精品| 丰满少妇被猛烈进入av久久| 日韩乱码人妻无码中文字幕视频 | 精品国产不卡在线观看免费| 韩国免费A级毛片久久| 狠狠爱五月丁香亚洲综| 起碰免费公开97在线视频 | 日韩国产中文字幕精品| 国产精品无码久久久久AV| 伊人av超碰伊人久久久|