江蘇省常州建設(shè)高等職業(yè)技術(shù)學(xué)校網(wǎng)站軟文推廣經(jīng)典案例
目錄
什么是mock?
什么時(shí)候需要用到mock?
如何實(shí)現(xiàn)?
python+flask自定義mock服務(wù)的步驟
一、環(huán)境搭建
1、安裝flask插件
2、驗(yàn)證插件
二、mock案例
1、模擬 返回結(jié)果
2、模擬 異常響應(yīng)狀態(tài)碼
3、模擬登錄,從jmeter中獲取用戶名和密碼
什么是mock?
簡(jiǎn)單來(lái)說(shuō),就是模擬接口。
什么時(shí)候需要用到mock?
1、依賴的接口未實(shí)現(xiàn)
2、依賴的接口響應(yīng)速度慢
3、針對(duì)接口模擬各種異常
如何實(shí)現(xiàn)?
1、使用mock現(xiàn)有工具-->moco
2、自定義mock
?? ?①編寫(xiě)一個(gè)函數(shù),直接return模擬的值
?? ?②使用接口開(kāi)發(fā)框架編寫(xiě)要模擬的接口 flask
接下來(lái),我們就使用python+flask來(lái)實(shí)現(xiàn)自定義mock。
python+flask自定義mock服務(wù)的步驟
一、環(huán)境搭建
1、安裝flask插件
pip install flask
2、驗(yàn)證插件
flask --version
二、mock案例
1、模擬 返回結(jié)果
from flask import Flaskapp = Flask(__name__)
# 添加此配置,讓接口返回值的中文不轉(zhuǎn)碼(保持顯示中文)
app.config['JSON_AS_ASCII'] = False# 定義接口 模擬返回結(jié)果
@app.route("/login", methods=["post"])
def login():return {"status": 200, "msg": "恭喜您,登錄成功!", "token": "xxxxxx"}# 運(yùn)行
app.run()
2、模擬 異常響應(yīng)狀態(tài)碼
from flask import Flaskapp = Flask(__name__)
# 添加此配置,讓接口返回值的中文不轉(zhuǎn)碼(保持顯示中文)
app.config['JSON_AS_ASCII'] = False# 定義接? 模擬異常響應(yīng)狀態(tài)碼
@app.route("/login/lgy", methods=["get"])
def lgy():return "error page", 404, {"Content-Type": "application/json"}# 運(yùn)行
app.run()
3、模擬登錄,從jmeter中獲取用戶名和密碼
"""
需求: ?戶名為admin 密碼為:123456 返回登錄成功!否則返回?戶名或密碼錯(cuò)誤,請(qǐng)求參數(shù)
格式為:form
"""
from flask import Flask, requestapp = Flask(__name__)
# 添加此配置,讓接口返回值的中文不轉(zhuǎn)碼(保持顯示中文)
app.config['JSON_AS_ASCII'] = False@app.route('/my_login', methods=["post"])
def my_login():username = request.form.get("username")pwd = request.form.get("password")if username == 'admin' and pwd == '123456':data = {"status": 200, "msg": "恭喜您,登錄成功!", "token": "xxxxxx"}return dataelse:data = {"status": 200, "msg": "用戶名或密碼錯(cuò)誤"}return data# 運(yùn)行
app.run()
jmeter取樣器設(shè)置:
?
?