python 은 어떻게 mock 인터페이스 서 비 스 를 구축 합 니까?

머리말
      Mock 은 시 뮬 레이 션 입 니 다.테스트 과정 에서 쉽게 구성 되 지 않 거나 쉽게 얻 을 수 없 는 대상 에 대해 가상 대상 으로 테스트 할 수 있 는 테스트 방법 을 만 드 는 것 입 니 다.가장 큰 장점 은 앞 뒤 단 결합 도 를 낮 추어 전단 엔지니어 가 백 엔 드 에 의존 하지 않 고 데 이 터 를 되 돌려 줄 수 있 도록 하 는 것 입 니 다.먼저 전단 스타일 과 논리 적 처 리 를 개발 합 니 다.쉽게 말 하면 Mock 은 의존 문 제 를 해결 하고 복잡 한/불안정 한/아직 구축 되 지 않 은 의존 대상 을 간단 한 가짜 대상 으로 대체 합 니 다.
Mock Server 즉 Mock 인터페이스 서버 로 빠 른 Mock 설정 을 통 해 새로운 인 터 페 이 스 를 만 들 수 있 습 니 다.
Mock Server 사용 범위:
전후 단 분리 항목
  • 측정 한 인 터 페 이 스 는 제3자 시스템(아직 갖 추어 지지 않 았 음)에 의존한다
  • 측정 한 인 터 페 이 스 는 복잡 하거나 의존 하 는 인터페이스 가 불안정 하고 주요 검증 대상 이 되 지 않 습 니 다
  • 4.567917.또한 인터페이스 가 아직 개발 되 지 않 았 을 때 Mock 인터페이스(가짜 인터페이스)를 제공 하면 인터페이스 문서 만 있 는 것 보다 더욱 직관 적 이 고 의사 소통 비용 과 일부 문서 의 이 해 를 효과적으로 감소 할 수 있다     인터페이스 테스트 를 할 때 테스트 시스템 은 제3자 시스템 을 연결 해 야 하지만 기 존의 제3자 시스템 환경 이 없다.이때 우 리 는 mock 을 사용 하여 이러한 의존 관 계 를 해결 해 야 한다.python 은 mock api 인터페이스 서 비 스 를 편리 하 게 구축 할 수 있 는 모듈 인 flask 를 제공 했다.Flask 는 간단 하고 강력 한 Python 웹 프레임 워 크 입 니 다.이 는 마이크로 프레임 워 크 라 고 불 린 다.'마이크로'는 전체 웹 애플 리 케 이 션 을 Python 파일 에 넣 는 것 을 의미 하 는 것 이 아니다.마이크로 프레임 워 크 의'마이크로'는 Flask 가 코드 를 간결 하고 확장 하기 쉬 우 며 Flask 프레임 워 크 의 주요 특징 은 핵심 구성 이 간단 하지만 확장 성과 호환성 이 강하 다 는 것 이다.프로그래머 는 Python 언어 로 사이트 나 웹 서 비 스 를 신속하게 실현 할 수 있다.따라서 fllask 는 웹 서 비 스 를 쉽게 구축 할 수 있 고 외부 에 도 클 라 이언 트 에 게 웹 서 비 스 를 제공 할 수 있 습 니 다.fllask 프레임 워 크 라 는 특징 에 따라 저 희 는 API 인 터 페 이 스 를 쉽게 구축 하여 클 라 이언 트 가 방문 할 수 있 습 니 다.
    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 인터페이스 서 비 스 를 구축 하 는 데 관 한 자 료 는 다른 관련 글 에 주목 하 십시오!

    좋은 웹페이지 즐겨찾기