<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          接口測試Mock利器--moco runner是如何工作的?

          共 3415字,需瀏覽 7分鐘

           ·

          2020-09-23 07:22


          1.什么是MOCO?

          moco是一個搭建模擬服務器的工具,其支持API和獨立運行兩種方式。

          API運行:通常是在junit等測試框架中使用

          獨立運行:是通過一個jar包開啟服務

          2.moco能解決什么問題?

          Moco是針對HTTP集成而生的,不過,現(xiàn)在也有人把它用在其它需要一個模擬服務器的場景中。比如,在移動開發(fā)中,有人開發(fā)一個移動應用,需要有一個遠端服務,但在開發(fā)時,這個服務還不存在,他就用Moco模擬了一個服務,保證移動應用可以順利的開發(fā)。同樣,也有人把它用在Web前端開發(fā)里,當我們的頁面需要通過與服務器交互時,就可以用Moco模擬這樣一個服務。這種做法在開發(fā)一個頁面原型時,非常有用,因為那個時候,我們還來不及開發(fā)一個完整的服務。

          3.moco在接口測試中的作用?

          對于前端開發(fā)而言:moco可以模擬服務器,來對開發(fā)出來的頁面,進行交互調(diào)試

          那么一般接口文檔輸出后,測試人員可能需要提前進行接口用例的編寫,而這時接口開發(fā)工作還沒完成,如果對接口用例進行執(zhí)行的前提是開發(fā)人員完成接口開發(fā)。這樣,降低測試開發(fā)效率。

          這時,如果測試人員使用moco框架,就可以在接口文檔輸出后,在接口開發(fā)完成前,設(shè)計用例過程中,使用moco搭建一個模擬服務器。在用例設(shè)計完成后,即使接口開發(fā)工作還未完成,也可以立即進行執(zhí)行接口用例,在這個過程中可以修改、補充用例,在接口開發(fā)完成以后,只需要簡單的去執(zhí)行所有的接口用例腳本就 OK,省去了很大的工作量,并且這些完善的用例腳本,用自動化去執(zhí)行,效果更佳。


          4、Mock服務moco-runner Demo

          下載moco-runner的Jar包:
          https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/moco-runner-0.12.0-standalone.jar
          準備環(huán)境:
          Windows 并且安裝Java環(huán)境。

          5、Get請求如何模擬呢?

          配置文件config.json
          GET請求定義訪問路徑和數(shù)據(jù)格式,如下:

          [{
          "description":"這是一個帶參數(shù)的get請求",
          "request":
          {
          "method":"get",
          "uri":"/login"
          },
          "response":
          {
          "text":"返回這是一個帶參數(shù)的get請求"
          }
          }]

          參數(shù)說明:
          description是描述
          request是請求
          uri是請求路徑
          response是返回結(jié)果
          text是返回的是文本類型內(nèi)容

          運行jar包,啟動moco-runner服務

          java -jar moco-runner-0.12.0-standalone.jar start -p 8801 -c config.json

          參數(shù)說明:
          java -jar 是啟動jar文件命令
          http -p 是訪問協(xié)議和訪問端口號
          -c 是模擬的接口文件


          啟動服務之后便可以在瀏覽器中進行測試接口,輸入地址:http://127.0.0.1:8801/login 會返回上述config.json文件中定義的文本內(nèi)容,此處使用postman進行測試,其返回結(jié)果如下:

          從上面結(jié)果可看出已經(jīng)正常顯示,不過中文顯示亂碼,需要在配置文件中加入編碼格式,解決中文亂碼問題,這里直接編輯config.json文件保存即可,服務會監(jiān)聽到配置文件的改動之后自動重啟服務。

                      "headers":
          {
          "Content-Type":"text/html;charset=gbk"
          }

          6、Post請求如何模擬呢?

          只是post的請求方式中傳遞數(shù)據(jù)的方式不一樣了,所以只需要稍微修改一下config.json內(nèi)容即可,修改如下:

          [{
          "description":"這是一個帶參數(shù)的POST請求",
          "request":
          {
          "method":"post",
          "uri":"/login_post",
          "forms":{
          "name":"Ruancexiaosheng",
          "pwd":"testpwd"
          }
          },
          "response":
          {
          "text":"返回這是一個帶參數(shù)的POST請求",
          "headers":
          {
          "Content-Type":"text/html;charset=gbk"
          }
          }
          }]

          完成修改之后同樣是通過運行jar包啟動moco runner服務,然后使用接口訪問,結(jié)果如下:

          java -jar moco-runner-0.12.0-standalone.jar start -p 8801 -c config_post.json

          上述的文件中的接口都是單獨存放,當然,所有接口可以維護在一個文件,如下

          [{
          "description":"這是一個帶參數(shù)的get請求",
          "request":
          {
          "method":"get",
          "uri":"/login"
          },
          "response":
          {
          "text":"這是一個帶參數(shù)的get請求",
          "headers":
          {
          "Content-Type":"text/html;charset=gbk"
          }
          }
          },
          {
          "description":"這是一個帶參數(shù)的POST請求",
          "request":
          {
          "method":"post",
          "uri":"/login_post",
          "forms":{
          "name":"Ruancexiaosheng",
          "pwd":"testpwd"
          }
          },
          "response":
          {
          "text":"這是一個帶參數(shù)的POST請求",
          "headers":
          {
          "Content-Type":"text/html;charset=gbk"
          }
          }
          }]




          文章合集

          Selenium | Appium? | Jenkins? |? Jmeter?

          軟件測試方法匯總?|?Postman接口參數(shù)化?| 測試用例設(shè)計?|?安卓App抓包

          視頻教程

          Selenium?| Appium |?Jenkins |?Jmeter

          往期推文:

          Python 如何使用 HttpRunner 做接口自動化測試

          為何Android 7.0 以上Charles和Fiddler無法抓取HTTPS包?

          Fiddler對安卓App抓包(逍遙模擬器APP)


          AWS與Docker

          如何使用AWS EC2+Docker+JMeter構(gòu)建分布式負載測試基礎(chǔ)架構(gòu)
          Docker容器數(shù)據(jù)持久化和容器網(wǎng)橋連接
          Docker刪除image和container
          Docker與VM虛擬機的區(qū)別以及Docker的特點




          END



          覺得不錯,可以“點贊”和“在看”,或者轉(zhuǎn)發(fā)留言


          精彩的內(nèi)容要和朋友分享

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲免费一级 | 久久久久成人精品免费 | 蜜桃AV网站 | 欧美天堂在线 | 色五月无码 |