基于Flask框架的Mock Server接口文件
- 安裝Flask
pip3 install Flask
- 創(chuàng)建Flask應(yīng)用程序猖闪,定義路由,運(yùn)行程序
# 導(dǎo)入Flask模塊
from flask import Flask
# 創(chuàng)建一個Flask應(yīng)用
app = Flask(__name__)
# 定義一個路由/钱豁,接口返回‘hello world’
@app.route('/')
def index():
return 'hello world'
# 運(yùn)行程序
if __name__ == '__main__':
app.run()
- 請求接口
import unittest
import requests
class TestApi(unittest.TestCase):
def test_api(self):
url = 'http://127.0.0.1:5000/'
res = requests.get(url)
print(res.text)
請求結(jié)果
============================= test session starts ==============================
collecting ... collected 1 item
test_api.py::TestApi::test_api
============================== 1 passed in 0.20s ===============================
hello world
mock兩個略復(fù)雜的接口
import hashlib
from flask import Flask, request
# 基于Flask框架的Mock Server接口文件
app = Flask(__name__)
def gen_md5(str_value):
value = hashlib.md5(str_value.encode('utf-8')).hexdigest()
return value
# methods: 指定請求方式
@app.route('/process', methods=['POST'])
def process_data():
# 請求方式為post時,可以使用 request.get_json()接收到JSON數(shù)據(jù)
data = request.get_json()
return data
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username', None)
password = request.json.get('password', None)
if username == str(gen_md5('admin')).upper() and password == str(gen_md5('password')).upper():
return {'error_code': '0', 'message': '登陸成功', 'data': [{'api_token': gen_md5('admin123')}]}
else:
return {'error_code': '-1', 'message': '登陸失敗'}
請求上面的兩個接口
import hashlib
import unittest
import requests
class TestApi(unittest.TestCase):
def test_01_api(self):
url = 'http://127.0.0.1:5000/process'
data = {'username': 'Elaine', 'password': '123'}
res = requests.post(url, json=data)
print(res.text)
def test_02_login(self):
url = 'http://127.0.0.1:5000/login'
username = hashlib.md5('admin'.encode('utf-8')).hexdigest()
password = hashlib.md5('password'.encode('utf-8')).hexdigest()
data = {
'username': str(username).upper(),
'password': str(password).upper()
}
res = requests.post(url, json=data)
result = res.json()
print(result)
請求結(jié)果:
============================= test session starts ==============================
collecting ... collected 2 items
test_api.py::TestApi::test_01_login {'data': [{'api_token': '0192023a7bbd73250516f069df18b500'}], 'error_code': '0', 'message': '登陸成功'}
PASSED
test_api.py::TestApi::test_03_api {
"password": "123",
"username": "Elaine"
}
PASSED
============================== 2 passed in 0.10s ===============================