Python接口測試之moco(八)


       在現在的軟件開發過程中,特別是app的部分,需要的很多數據以及內容,都是來自server端的API,但是不能保證

在客戶端開發的時候,api在server端已經開發完成,專門等着前端來調用,理想的情況是前端在開發的時候,已經有人寫

好了接口,直接調用就可以了,但是這僅僅是理想的情況,很多時候,現實總是比理想多一層思考和磨難,如果在前端開發

的時候,提供api的同學沒有提供,那么怎么辦?等待還是自己先開發,等待肯定是愚蠢的做法,那么自己開發怎么來解決

api提供數據的這個問題,那么使用mock就可以很好的解決,什么是mock?mock簡單的理解就是開發在開發的過程中,

需要依賴一部分的接口,但是對方沒有提供或者環境等等情況,總之是沒有,那么開發使用mock server自己來mock

數據,方便自己正常的進行開發和對編寫的功能進行自測。

     在https://github.com/dreamhead/moco地址中可以下載到moco-runner-0.11.0-standalone.jar,下載下來

就是一個jar,在該地址中,作者對這部分有詳細的說明和啟動mock server方法,這里不在重復的再次說明。下來我們

簡單的編寫一個登錄的,見編寫的login.json字符串:

[
  {
    "request":
    {
      "method":"post",
      "uri":"/login",
      "json":
      {
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
      "json":
      {
        "username":"wuya",
        "userID":22,
        "token":"asdgfhh32456asfgrsfss"
      }
    }
  }
]

在運行命令前,最好讓mock server與編寫的login.json文件是在同一個目錄下,見執行的命令:

                              java -jar  moco-runner-0.10.0-standalone.jar http -p 12306 -c login.json

在如上的命令中,java -jar  moco-runner-0.10.0-standalone.jar是啟動jar,沒什么可說的,http表示進行的是http協議,

-p后面跟的是端口號,這里端口號指的是12306,-c后面跟編寫的json文件,這里是login.json,見執行如上的命令后出現的

信息(切記無任何的錯誤信息表示OK,如果有錯誤,慢慢的進行檢查錯誤),見截圖:

OK,下來我們使用postman來驗證下,我們mock的登錄接口是不是OK的,見postman中填寫的信息,見截圖:

header為:

  • Content-Length →63
  • Content-Type →application/json

OK,學習到這里,我們使用python編寫一個接口測試用例,來驗證換這個登錄的接口和獲取它的token,見實現的代碼:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-

import  unittest
import  requests

class MockLoginTest(unittest.TestCase):
    def setUp(self):
        self.url='http://localhost:12306'

    def tearDown(self):
        pass

    def getUrl(self,path):
        return self.url+path

    def getToken(self):
        '''獲取token'''
        data={
            "username":"admin",
            "password":"admin",
            "roleID":22
        }
        r=requests.post(self.getUrl('/login'),json=data)
        return r.json()['token']

    def test_login(self):
        '''驗證登錄的接口'''
        data={
            "username":"admin",
            "password":"admin",
            "roleID":22
        }
        r=requests.post(self.getUrl('/login'),json=data)
        self.assertEqual(r.status_code,200)
        self.assertEqual(r.json()['username'],'wuya')

if __name__=='__main__':
    unittest.main(verbosity=2)

OK,在上面的python代碼中,實現了對登錄接口的驗證和獲取了它的token,當然關於mock server的

詳細的使用,本博客會繼續更新的,謝謝您的關注!祝安!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM