自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

接口測(cè)試系列文章之使用flask輕松搭建mock 服務(wù)

開發(fā) 前端
mock Server出現(xiàn)的原因是現(xiàn)今的業(yè)務(wù)系統(tǒng)很少有孤立存在的,它們或多或少需要使用兄弟團(tuán)隊(duì)或是其他公司提供的服務(wù),這給我們的聯(lián)調(diào)和測(cè)試造成了麻煩。于是就有了解決方案——搭建一個(gè)臨時(shí)的server,模擬那些服務(wù),提供數(shù)據(jù)進(jìn)行聯(lián)調(diào)和測(cè)試。

 [[360833]]

做過接口測(cè)試的同學(xué)一定聽說過mock Server,大家會(huì)覺得其很神秘,很高大上!mock Server出現(xiàn)的原因是現(xiàn)今的業(yè)務(wù)系統(tǒng)很少有孤立存在的,它們或多或少需要使用兄弟團(tuán)隊(duì)或是其他公司提供的服務(wù),這給我們的聯(lián)調(diào)和測(cè)試造成了麻煩。于是就有了解決方案——搭建一個(gè)臨時(shí)的server,模擬那些服務(wù),提供數(shù)據(jù)進(jìn)行聯(lián)調(diào)和測(cè)試。下圖很好的解釋了什么是Mock server

接口測(cè)試系列文章5——使用flask輕松搭建mock 服務(wù)

Flask

Flask是一個(gè)Python編寫的Web 微框架,讓我們可以使用Python語言快速實(shí)現(xiàn)一個(gè)網(wǎng)站或Web服務(wù)。

[[360834]]

Falsk的安裝

pip install flask

Flask構(gòu)建一個(gè)web服務(wù)簡直太快了,7行代碼就可以搞定,helloword代碼如下:

  1. from flask import Flask 
  2.  
  3. app = Flask(__name__) 
  4.  
  5. @app.route('/'
  6.  
  7. def index(): 
  8.  
  9.      return 'Hello World' 
  10.  
  11. if __name__ == '__main__'
  12.  
  13.     app.run() 

然后在ide中運(yùn)行這個(gè)py文件,顯示如下:


在瀏覽器中輸入http://127.0.0.1:5000/ 可以看到瀏覽器中顯示Hello World

代碼分析如下:

@app.route('/')說明了你要訪問的url,'/'代表根目錄;

return 'Hello World'代表在瀏覽器中顯示Hello World,即請(qǐng)求http://127.0.0.1:5000/ 的返回值;

app.run()表示啟動(dòng)mock 服務(wù)。

如果我們需要構(gòu)建帶參數(shù)的get方法可以使用如下代碼:

  1. @app.route('/check/<version>'
  2.  
  3. def check_version(version=None): 
  4.  
  5.    if version=='1'
  6.  
  7.        return 'version=1.0' 
  8.  
  9.     elif version=='2'
  10.  
  11.        return 'version=2.0' 
  12.  
  13.     else
  14.  
  15.        return 'bad version' 

 這里相當(dāng)于是在url中輸入的參數(shù)

在瀏覽器輸入127.0.0.1:5000/check/2 會(huì)輸出version=2.0

在瀏覽器輸入127.0.0.1:5000/check/1會(huì)輸出version=1.0

在瀏覽器輸入127.0.0.1:5000/check/111會(huì)輸出bad version,

這個(gè)實(shí)例很容易模擬了我們需要的get方法的請(qǐng)求,判斷具體方法,然后返回相應(yīng)的值。

如果我們需要?jiǎng)?chuàng)建post方法可以使用如下代碼:

  1. from flask import Flask,request 
  2.  
  3. @app.route('/login',methods=['POST']) 
  4.  
  5. def login(): 
  6.  
  7.     if request.method == 'POST'
  8.  
  9.         val=str(request.data, encoding = "utf8"
  10.  
  11.         print (val) 
  12.  
  13.         if val.find('admin')==-1: 
  14.  
  15.             return ' status 400,No such user! ' 
  16.  
  17.         else
  18.  
  19.              return 'status 200,admin login' 
  20.  
  21.      else
  22.  
  23.            return ' status 403,login need post method' 

 通過RESTclient(Firefox插件)構(gòu)建請(qǐng)求如下:

接口測(cè)試系列文章5——使用flask輕松搭建mock 服務(wù)

輸出admin login

代碼解析如下:

methods=['POST'] 限定了可以使用的http方法,只能使POST;

request.method 獲取request的方法;

request.data獲取request中data的值;

str(request.data, encoding = "utf8") 把request.data的值從bytes類型轉(zhuǎn)換到str類型。

好了,通過上面的實(shí)例我們就可以很輕松的模擬POST或者GET方法來構(gòu)建Mock Server了!

Flask和Django的選擇

Django也是python web開發(fā)的主流框架,他與flask相比區(qū)別如下:

Flask提供了靈活性,簡單性和細(xì)粒度的控制。

Flask不受限制,讓你決定如何實(shí)現(xiàn)應(yīng)用程序。

Django為我們的Web應(yīng)用程序開發(fā)提供了管理面板,數(shù)據(jù)庫界面,目錄結(jié)構(gòu)和ORM的全方位體驗(yàn)。

如果我們只需要開發(fā)一個(gè)輕量級(jí)網(wǎng)站或者特定的微服務(wù)(比如mock server),我們根本用不上Django自帶的大而全的組件和功能,這時(shí)我們應(yīng)該毫不猶豫地選擇Flask;如果我們要開發(fā)包含各種功能的傳統(tǒng)企業(yè)級(jí)網(wǎng)站(比如電商,新聞內(nèi)容管理,社交網(wǎng)站,辦公OA),使用Django能幫我們節(jié)省不少尋找或開發(fā)第三方擴(kuò)展的精力。

總結(jié)

關(guān)于mock server在接口測(cè)試的面試中,通常都是終極考核,如果你能了解相關(guān)內(nèi)容,并能夠搭建mock server,那么你的技術(shù)面試考核90%是會(huì)通過的!

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2020-12-08 12:24:55

接口測(cè)試Interface

2020-12-14 11:26:25

接口測(cè)試python

2019-05-14 13:59:52

Flask服務(wù)器部署

2022-10-19 13:11:35

2024-07-29 12:12:59

2019-10-23 08:00:00

Flask機(jī)器學(xué)習(xí)人工智能

2020-08-23 12:27:39

測(cè)試接口技巧

2016-11-08 10:24:37

FlaskPython插件

2011-07-22 09:29:54

裸線測(cè)試

2009-07-07 12:50:58

刀片服務(wù)器服務(wù)器DELL

2009-07-07 12:35:50

刀片服務(wù)器服務(wù)器虛擬化

2020-05-27 08:05:33

MybatisMapper接口

2009-05-20 14:43:38

ibmdwEasyMock測(cè)試

2022-08-14 16:11:23

Python自動(dòng)化測(cè)試數(shù)據(jù)

2015-10-08 14:03:01

TCP網(wǎng)絡(luò)協(xié)議

2017-03-23 16:02:10

Mock技術(shù)單元測(cè)試

2021-05-18 09:01:09

Windows操作系統(tǒng)NodeJs服務(wù)器

2023-10-28 10:10:41

2024-03-04 19:07:58

OpenAI開發(fā)

2010-05-28 10:10:49

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)