PYTHON之MOCK WEB接口


在日常的測試工作中,有時會有需要調用外部接口,拿到返回數據用以滿足當前的測試任務的需求。但是當外部接口不可用,或者沒有提供測試用環境時,我們就需要自己來mock一個接口的返回內容了,先讓我們看一看下面的這段代碼

from wsgiref.simple_server import make_server

def application(environ,response):
    response('200 OK', [('Content-Type', 'text/html')])
    res = b'BestTest'
    return [res]

http = make_server('',8000,application)
print('server in 8000....')
http.serve_forever()

上面的application()函數就是符合WSGI標准的一個HTTP處理函數,它接收兩個參數:

  • environ:一個包含所有HTTP請求信息的dict對象;
  • response:一個發送HTTP響應的函數。

response('200 OK', [('Content-Type', 'text/html')])則是將http響應的header發出去,同時需要注意的是只能發送一次。response()函數會接收兩個參數,一個是HTTP響應碼,也就是'200 OK',一個是一組list表示的HTTP Header,每個Header用一個包含兩個str的tuple表示。

直接運行這段代碼,同時請求我們本機的ip:8000 或127.0.0.1:8000這個地址,在這時會發現我們設置的返回結果出現在了屏幕上。

但是問題就來了,有的人會問:我要的接口返回的是一段json返回呀,你這個只是一個字符串的返回我根本用不了啊,那么讓我們來試試下面這一段

from wsgiref.simple_server import make_server
import json

def application(environ,response):
    response('200 OK', [('Content-Type', 'text/json')])
    res = {'data':[{"class":'BestTest性能測試',"Teacher":'安大叔'},
                   {"class":'BestTest性能測試',"Teacher":'liml'}]}
    return [json.dumps(res).encode('utf-8')]

http = make_server('',8000,application)
print('server in 8000....')
http.serve_forever()

我們再來運行一下試試看

好了,這下返回的結果可以使用了。


免責聲明!

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



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