python 은 어떻게 mock 인터페이스 서 비 스 를 구축 합 니까?
Mock 은 시 뮬 레이 션 입 니 다.테스트 과정 에서 쉽게 구성 되 지 않 거나 쉽게 얻 을 수 없 는 대상 에 대해 가상 대상 으로 테스트 할 수 있 는 테스트 방법 을 만 드 는 것 입 니 다.가장 큰 장점 은 앞 뒤 단 결합 도 를 낮 추어 전단 엔지니어 가 백 엔 드 에 의존 하지 않 고 데 이 터 를 되 돌려 줄 수 있 도록 하 는 것 입 니 다.먼저 전단 스타일 과 논리 적 처 리 를 개발 합 니 다.쉽게 말 하면 Mock 은 의존 문 제 를 해결 하고 복잡 한/불안정 한/아직 구축 되 지 않 은 의존 대상 을 간단 한 가짜 대상 으로 대체 합 니 다.
Mock Server 즉 Mock 인터페이스 서버 로 빠 른 Mock 설정 을 통 해 새로운 인 터 페 이 스 를 만 들 수 있 습 니 다.
Mock Server 사용 범위:
전후 단 분리 항목
Flask mock 인터페이스 개발 예시
먼저 필요 한 Flask 모듈 을 설치 합 니 다.환경 에 pip 가 설치 되 어 있 으 면 입력:pip install flask 설치 가 완료 되 었 습 니 다.
또는 pycharm 에서 직접 검색 하여 설치:
1.1 GET 요청 방법의 인터페이스 구축
Pycharm 에 py 파일 을 새로 만 들 고 다음 코드 를 편집 합 니 다.
# -*- coding: utf-8 -*-
import flask,json
import time
server = flask.Flask(__name__) # , python
@server.route('/VIID/System/Time', methods=['get']) # @server.route() 、 、 , methods get
def Time():
''' : , : , :SystemTime'''
response_data = {
"SystemTimeObject": {
"VIIDServerID": "123",
"TimeMode": "1",
"LocalTime": time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())),
}
}
return json.dumps(response_data, ensure_ascii=False)
if __name__ == '__main__':
server.run(debug=True, port=5000, host='10.82.25.11') # 、host
그리고 이 py 파일 을 실행 하면 이 파일 은 로 컬 에서 웹 서 비 스 를 실행 합 니 다.브 라 우 저 나 postman 으로 이 서비스의 URL 에 접근 하려 고 시도 하면 됩 니 다.브 라 우 저 접근:
postman 에서 요청 한 접근:
브 라 우 저 나 postman 요청 이 완료 되면 Pycharm 의 출력 표시 줄 에서 다음 과 같이 출력 합 니 다.
POST,PUT,DELETE 등 다른 요청 은 methods 매개 변수 에 명시 하면 됩 니 다.그러나 POST,PUT,DELETE 등 방법 은 브 라 우 저 에서 직접 방문 할 수 없습니다.브 라 우 저 는 기본 접근 시 get 방법 이기 때문에 postman 으로 지정 한 방법 으로 요청 을 보 낼 수 있 습 니 다.
1.2 json 형식 요청 체 의 인터페이스 가 져 오기
때때로 클 라 이언 트 가 보 낸 요청 은 json 형식 을 가 져 옵 니 다.이 때 요청 한 json 을 가 져 와 야 합 니 다.편집 코드 는 다음 과 같 습 니 다.
@server.route('/data',methods=['post'])
def post_json():
if flask.request.is_json:
print(flask.request.json)
name = flask.request.json.get('name') # json
age = flask.request.json.get('age') # json
data = {'name':name,'age':age}
return json.dumps(data,ensure_ascii=False)
else:
return json.dumps({'msg':' json '},ensure_ascii=False)
postman 을 클 라 이언 트 로 json 요청 체 를 보 내 는 요청 을 사용 합 니 다.다음 그림:1.3 get 요청 에서 보 낸 인자 가 져 오기
flask 가 제공 하 는 방법 은:
value = flask.request.args.get('name') # get name
1.4 동적 URL 구축 및 응답 체 재 설정클 라 이언 트 가 요청 한 url 은 변화 하 는 경우 가 많 습 니 다.즉,동적 인 파 라 메 터 를 가 진 fllask 도 동적 인 파 라 메 터 를 제공 하 는 url 자원 서 비 스 를 쉽게 구축 하고 응답 체 를 재 설정 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
# -*- coding: utf-8 -*-
import flask,json
from flask import url_for,redirect
server = flask.Flask(__name__) # , python
@server.route('/data')
def data(): # data
data = {
'VideoSliceInfoObject': {
'VideoID': 'esse elit',
'AudioCodeFormat': 'commodo'
}
}
return json.dumps(data, ensure_ascii=False)
@server.route('/data/<ID>/Info', methods=['post'])
def data_redirect(ID):
return redirect(url_for('data', guest=ID))
if __name__ == '__main__':
server.run(debug=True, port=5000, host='10.82.25.11') # 、host
뒤에 postman 이나 클 라 이언 트 가 보 낸 url 의 ID 인자 가 무엇이든 응답 할 수 있 습 니 다.1.5 응답 헤드 와 응답 상태 코드 재 구축
제3자 시스템 과 도 킹 할 때 응답 헤더 메시지 와 지정 한 응답 상태 코드 를 되 돌려 야 할 때 도 있 습 니 다.fllask 에서 도 사용자 정의 응답 메 시 지 를 구축 할 수 있 습 니 다.
# -*- coding: utf-8 -*-
import flask,json
server = flask.Flask(__name__) # , python
@server.route('/data',methods=['post'])
def post_json():
if flask.request.is_json:
print(flask.request.json)
name = flask.request.json.get('name') # json
age = flask.request.json.get('age') # json
data = {'name':name,'age':age}
#
resp = flask.make_response(json.dumps(data, ensure_ascii=False))
resp.status = "666"
resp.headers[
"python"] = "python flask"
return resp
else:
return json.dumps({'msg':' json '},ensure_ascii=False)
if __name__ == '__main__':
server.run(debug=True, port=5000, host='10.82.25.11') # 、host
이 py 파일 을 실행 하고 postman 에서 요청 을 보 내 며 응답 정 보 를 봅 니 다.다음 그림 은 사용자 정의 응답 헤더 와 상태 코드 가 됩 니 다.이렇게 해서 우 리 는 응답 하 는 머리 와 상태 코드 를 완전히 사용자 정의 했다.
이상 은 python 이 mock 인터페이스 서 비 스 를 어떻게 구축 하 는 지 에 대한 상세 한 내용 입 니 다.python 이 mock 인터페이스 서 비 스 를 구축 하 는 데 관 한 자 료 는 다른 관련 글 에 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.