두 번째 패키지의 요청을 바탕으로

방법을 기반으로 포장 ##

### 기본 환경 관리

> 사용 YML 파일이 환경 할, 구성 관리

<! - env.yml ->

``YAML
QA : Actiteepi : // kkbadukcom
UAT : Actiteepi : // uatkbadukcom
자극 : Actiteepi : // wwvkbadukcom
```

<! - load_yaml.py ->

``파이썬
수입 YAML의
수입 운영 체제


DEF (ENV = 'QA') get_host :
. 파일명 = os.path.join (os.path.dirname (__ FILE__) 'env.yml')를 교체 (
"\\", "/")
를 연 (파일명 'R', 인코딩 = "UTF-8")와 같은 F :
호스트 = yaml.load (f.read ())
복귀 hosts.get (ENV, 없음)
``

<! - test_load_yaml.py ->

```파이썬
수입 pytest
load_yaml 수입 get_host에서


데프 test_host_in_yaml ()
결과 = get_host ( "QA")
결과를 주장 == 'http://qa.baidu.com'


DEF test_host_not_in_yaml ()
결과 = get_host ( '데브')
결과를 주장 없음입니다
``

모듈 로그 ###

데코레이터 구현> 로그 모듈

<! - api_log.py ->

```파이썬
수입 로깅

logging.basicConfig (형식 = '[% (asctime과) (S)] % (메시지) S'= 레벨 logging.INFO)


데프 로거 (FUNC) :
'' '
기능을 실행하기 전에 및 함수 실행 후 일부 로그 정보를 추가합니다
' ''

DEF 랩퍼 (* ARG ** kw)
: logging.info ( "}}, {{{} 및 파라미터이었다 기능을 실행하기 시작".
형식 (FUNC .__ name__, 인수, kw))
FUNC (* ARG * * kw)
logging.info ( "기능의 실행을 완료 {}". 형식 (FUNC .__ name__))

래퍼를 반환
```

기본 기능 패키지 ###

<! - Session.py ->

```파이썬
요청에서 세션을 가져

데프 된 get_session () :
세션과 마찬가지로 S :
리턴의
```

<! - api_helpper.py ->

```파이썬
요청에서이 세션 가져
오기 로깅을

logging.basicConfig (형식 = '[% (asctime과) (S)] % (메시지) S'= 레벨 logging.INFO)


데프 된 get_session () :
S 등의 세션 ()와 :
반환의


클래스 BaseApi (객체) :
데프 __init __ (자기 세션) :
self.session = 세션
self.timeout = 30
self.verify = 거짓

데프 _GET (자기, URL, PARAMS, 헤더 = {}) :
시도 :
logging.info (. " '} {'요청에 시작"형식 (URL))
응답 = self.session.get (
URL = URL,
PARAMS = PARAMS,
초과 = self.timeout,
확인 = self.verify,
헤더 = 헤더)
logging.info ( "요청 된 파라미터는"{} "였다."형식 (PARAMS))
logging.info ( "응답 상태 코드 { '이었다 } "형식 (.
response.status_code))
E 같은 예외를 제외 :
응답 = '{}'(. 형식 E)는
logging.error (
" '} { "요청은 실패하고, 에러 메시지가 있었다'포맷 (E). )
마지막으로 :
응답을 반환
```

 

포장 작업하는 방법 ##

<! - BaiDu.py ->

``파이썬
클래스 바이 (BaseApi)
DEF get_baidu_index (자기 호스트 = r'http : //www.baidu.net 'URI = R'/ ')
응답 self._get = ('{{}} .format (호스트, URI) PARAMS = 없음)
복귀 response.text, response.status_code
``

추천

출처www.cnblogs.com/ZH-X/p/11403472.html