인터페이스 테스트 도구 및 제 2 포장 요청 소개

파이썬 HTTP 요청 인터페이스 자동화 된 테스트를 말하기, 내 마음을 가장 먼저 아마도 요청 라이브러리 물론, http.client, urllib2가 등등, 그러나 때문에 고유의 네이티브 모듈을 포함하여 HTTP 요청을 보낼 수 파이썬 모듈의 많은, 거기에있다 번쩍 하나 개의 모듈이 더 인기있는 인터페이스 자동화 된 테스트 도구의이 단계에서 또한, 다음 라이브러리가 태어난 요청, 사용하기에 너무 복잡 복잡

  간단하고 사용하기 쉬운 모든 HTTP 요청 방법을 캡슐화하는 타사 라이브러리 만, 요청의 다른 방법에 따라 네트워크 요청을 전송의 전체 프로세스를 완료하기 위해 해당 메소드를 호출 라이브러리는 요청 우리가 우려 그래서 오늘을 필요로하는 요청 사용하는 방법 우리가 오늘의 주요 내용에 대해 덜 이야기를 시작하기 전에 :

  GET 요청 1. requets를 보내는 방법

  POST 요청을 전송하는 방법 2. 요청

  3. PARAMS 차이 파라미터 데이터 파라미터

  마법 4. 세션 클래스 라이브러리를 요청

  가져 오기 및 사후 요청에 대한 요청은, 간단한 패키지에 대한 요청

 

GET 요청을 보내기


  HTTPS : 당신이 요청을 라이브러리 요청을 보내는 방법을 마스터 도착하기 전에, 다음, 송신 GET 요청을 완료하기 위해 GET () 메소드를 호출하여 요청, 당신은 또한 요청 무엇, 당신은이 문서를 참조 할 수 있습니다 얼핏를 얻어야한다 // www가 .cnblogs.com / linuxchao / P / linuxchao- http.html 우리가 방법을 사용하는 방법은 일반적으로하기 전에, 우리는 먼저이 방법의 매개 변수를 필요로 무엇을 알고 있어야? 어떤 매개 변수 유형은 무엇입니까?  그래서 우리는 먼저 소스 코드의 get () 메소드를 분석

1 데프 (URL, PARAMS = 없음, ** kwargs로)를 얻을 :

2 r은 "" "GET 요청을 보냅니다.

4 : PARAM의 URL : 클래스 :`Request` 개체에 새로운 URL입니다.

5 : PARAM PARAMS : (선택 사항) 사전, 튜플의 목록 또는 보낼 바이트

클래스 :`Request`의 본문에 6.

7 : PARAM \ * \ * kwargs로 : request`` 소요``것을 선택적 인수.

8 : 리턴 : 클래스`응답 <응답> '개체

9 : RTYPE : requests.Response

10 "" "

(11)

12 kwargs.setdefault ( 'allow_redirects', 참)

(13) 반환 요청 ( '수', URL, PARAMS = params를, ** kwargs로)

  이 get 메소드의 소스, 당신은 찾을 수 있어야하고, 수 (만 다른 중요하지 않은 매개 변수가 전달되는 매개 변수의 URL을 전달합니다 방법, 다음 다른 매개 변수가 어떤 영향을)?  PARAMS  이 매개 변수는 GET 요청의 특성에 따라,이 튜플을 중첩 할 수있는 사전을, 할 수있다, 요청 매개 변수에 URL 후 직접 할 수 있는가? 번호 (앰퍼샌드 분할을 사용하여 여러 매개 변수)의 키 = 값의 형태로 전달하기 시작하지만 분명히 URL 매개 변수를 구별하기 위해, 당신은 ** 통과 kwargs로를 PARAMS 매개 변수를 사용할 필요가 일시적 다음에 논의되지 않습니다, 일부 다른 주요 매개 변수를 의는 GET으로 reauets을 () 메소드는 요청이 방법은 블로그 홈 공원에 액세스 요청을 얻을 전송 () 가져 오기 없음 매개 변수와 인수 GET 요청을 전송 처리 경험이 간단한 예제를 살펴 보자

"" "

  ------------------------------------

  @Time : 2019년 7월 11일 20시 34분

  @Auth : 울트라 리눅스

  @file : requests_blog.py

  @IDE : PyCharm

  @Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

  ------------------------------------

  "" "

  가져 오기 모듈 가져 오기 요청 번호를 요청

 

 

  응답 = requests.get ( 'https://www.cnblogs.com/') # GET 요청이 전송

  인쇄 (response.text) # 응답 데이터를 페치

  응답 데이터

  <! DOCTYPE html로>

  <HTML>

  <head>

      <메타 캐릭터 = "UTF-8"/>

      <메타 이름 = "뷰포트"내용 = "= 폭 소자 폭 초기 스케일 = 1"/>

      <메타 이름 = "리퍼러"내용 = "항상"/>

      <제목> 블로그 공원 - 코드 변경 세계 </ 제목>

          <메타 이름 = "키워드"내용 = "개발자 블로그 정원, 개발자, 프로그램 원숭이, 절차 위안, 괴짜, 프로그래밍, 코드, 오픈 소스, IT 웹 사이트, 개발자, 프로그래머, 코더, 긱, 기술 커뮤니티"/>

              <메타 이름 = "설명"내용 = "공원은 개발자가 촉진을 통해 개발자를 도와위한 지식 개발자 커뮤니티. 그것의 처음부터, 정원 블로그가 최선을 다하고있다 및 순수 기술 교류 커뮤니티를 만드는 방법에 초점을 맞추고 공유를 지향 블로그 인터넷 지식 공유, 더 많은 개발자가 혜택을 정도로. 블로그 정원의 임무는 개발자가 세상을 변화하는 코드를 사용하는 것입니다. "/>

      <링크 REL = "단축 아이콘"HREF = "// common.cnblogs.com/favicon.ico"TYPE = "이미지 / X-아이콘"/>

      <링크 REL = "스타일 시트"TYPE = "텍스트 / CSS"HREF = "/ 번들 / aggsite.css? V = IlEZk4Ic2eCzcO6r0s4bGm62FAo8VZI-US_0EqUe2Bk1"/>

          <링크 ID = "RSSLink"제목 = "RSS"유형 = "응용 프로그램 / RSS + XML"확인해 = "대체"HREF = "http://feed.cnblogs.com/blog/sitehome/rss"/>

      <스크립트 SRC = "// common.cnblogs.com/scripts/jquery-2.2.0.min.js"유형 = "텍스트 / 자바 스크립트"> </ script>

      <스크립트 SRC = "/ 번들 / aggsite.js? V = cE0bqImLWsEG3gZXOupKxj5tj_ukK7pLeSd73DHZOT81"유형 = "텍스트 / 자바 스크립트"> </ script>

      <스크립트 비동기 = '비동기'SRC = 'HTTPS : //www.googletagservices.com/tag/js/Google 게시자 태그 .js'> </ script>

      <script>

          했다 googletag의 =이 googletag || {};

          googletag.cmd의 = googletag.cmd의 || [];

  </ script>


  여기에 응답 데이터의 일부의 차단, 응답 데이터는, 사실 (전체 과정이 처리를 요청, response.text하여 얻은 응답 데이터를 완료하는 데 단 한 줄의 코드 만 볼 수 실제로 집 정원 블로그의 HTML 소스 코드이며, 우리의 브라우저에서 공원이) 동일 액세스 할 블로그 주소를 입력하고, 물론 다음과 같은 방법을 사용하여 다른 응답 데이터를 얻을 수 있습니다

      response.headers 번호는 응답 헤더를 얻을

  에는 Response.Cookies 번호는 쿠키가 반환받을

  response.status_code 번호는 상태 코드를 가져옵니다

  요청 매개 변수의 PARAMS 함께 전송받을

  "" "

  ------------------------------------

  @Time : 2019년 7월 11일 20시 34분

  @Auth : 울트라 리눅스

  @file : requests_blog.py

  @IDE : PyCharm

  @Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

  ------------------------------------

  "" "

  가져 오기 요청

 

  LOGIN_URL = r'http : // *** : 8080 / futureloan / MVC / API / 회원은 '#을 接口 로그인 / 地址

  login_data = { "모바일 폰": "13691579841", "PWD"# 123456} 인터페이스 필요한 파라미터

  응답 = requests.get (URL = LOGIN_URL, PARAMS = login_data) # GET 요청이 전송

  인쇄 (response.text) # 응답 데이터를 페치

 

  인쇄 (response.url)

  응답 데이터

{ "상태"1 "코드": "10001", "데이터"널 "MSG": "登录 成功"}

에 http : // *** : 8080 / futureloan / MVC / API / 회원 / 로그인 모바일 폰 = 13691579841 & PWD = 123456

프로세스 종료 코드 0으로 완료

  우리는 GET 요청을 전달하여 사전을 완료 응답 데이터를 가져올하고 매개 변수, 매개 변수 PARAMS를 제공  주의  인터페이스가 바람직 사전 데이터를 전달로 데이터 유형이 요청을 보낼 때 JSON이 필요한 경우, 1. 우리의 일상 업무를 2. 만 (통과 PARAMS 매개 변수를 사용하여 데이터, JSON 및 기타 매개 변수를 사용하는 경우가 발견, 요청되며, 사전에 첫 번째 차례 당신은 GET 요청을 보내는 경우, 및 인터페이스 매개 변수는 URL을 모자이크 방식을 통해 직접 전달하지 않으려는 매개 변수 PARAMS에 의해 요청 된 URL에 의지 추가 기능이 경과 얻을 당신이 염두에 두어야 할 필요가 있으므로,) 성공하지 : 요청을받을 보낼 단순한 방법보다 더 얻기 위해 요청을 보낼 때 PARAMS 매개 변수는 사용할 수 있습니다 다른 매개 변수와 함께 보낼 수있는 방법 (예 : 헤더, 쿠키 등) GET 요청에 관해서는, 우리는 () 가져 오기의 더 많은 연구와 연습이 필요

POST 요청을 보내기

 

  당신은 다음과 같은 내용을 시작하기 전에 또한, 당신이 첫 번째 게시물 요청 및 그 특성이 무엇인지 이해하는 것이 좋습니다, 당신은 더 나은 될 것입니다 무엇을 다음과 이해 배울 https://www.cnblogs.com/linuxchao/p/linuxchao POST 요청을 보낼 수 -http.html 요청 후 () 메소드에 의해 수행됩니다, 우리는 소스 코드를 볼

1 DEF (URL 데이터 = 없음, JSON = 없음 ** kwargs로)를 게시 :

2 r은 "" "POST 요청을 보냅니다.

4 : PARAM의 URL : 클래스 :`Request` 개체에 새로운 URL입니다.

5 : PARAM 데이터 : 등급 :`Request` (옵션) 사전은 본문에 보내, 바이트, 또는 파일과 같은 객체 (형태로 인코딩 될 것이다).

6 : PARAM의 JSON은 : 클래스 :`Request` (선택 사항) JSON 데이터는 본문에 보낼 수 있습니다.

7 : PARAM \ * \ * kwargs로 : request`` 소요``것을 선택적 인수.

8 : 리턴 : 클래스`응답 <응답> '개체

9 : RTYPE : requests.Response

10 "" "

(11)

창 (12) 요청 ( '포스트', URL 데이터 = 데이터 JSON = JSON ** kwargs로)

  소스에 의해 우리는 포스트 ()를 찾아 하나 개의 URL 매개 변수를 전달해야합니다 존재하는 한, () 얻을, 아직도 다른 사람은 통과 할 수 없습니다 만, 어떤 데이터 및 매개 변수는 JSON 포스트 () 메소드 아래, 가장 중요한 매개 변수입니다 수 있습니다 데이터를 사용하는 경우에 대한, 경우에 JSON 사용하는 말  데이터  인터페이스를 기본 지원 형 콘텐츠 형식 대부분의 포스트 요청이 응용 프로그램 / x를 - www가 형상 -이다 를 urlencoded를, 우리가 요청 양식의 양식을 통과해야 인터페이스 매개 변수를 알려줍니다, 그래서 우리는 사전을 구축하여 폼 형태를 전달하는 경향이 있고, 우리는 데이터 파라미터를 사용하여 서버 형태로 형태를 제출할 때, 그 요청 본문에 저장된 사전 타입 데이터를 수신하고 서버 (파라미터 송신 ) 사전 형식이 필요합니다  JSON  은 콘텐츠 _ 데이터 형식 응용 프로그램 / JSON 형식을 지원하는 데 필요한 인터페이스의 첫 번째 방문, 당신은 인터페이스 매개 변수를 통해 전달할 수 있습니다 우리가보고 여기에) 사전은 또한 JSON 유형이 될 수있을 수 있습니다이 매개 변수 (파라미터를 JSON 데이터 인수를 사용하여, POST 요청을 전송하는 예시

"" "

------------------------------------

@Time : 2019년 7월 12일 10시 22분

@Auth : 울트라 리눅스

@file : requests_blog.py

@IDE : PyCharm

@Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

------------------------------------

"" "

가져 오기 요청

LOGIN_URL = r'http : //***.com : 8080 / futureloan / MVC / API / 회원 / '#을 接口 로그인 地址

login_data = { "모바일 폰": "13691579841", "PWD"# 123456} 인터페이스 필요한 파라미터

응답 = requests.post (URL = LOGIN_URL 데이터 = login_data) # 1 POST 요청을 보내

인쇄 (response.text) # 응답 데이터를 페치

인쇄 (response.url)

인쇄 (response.status_code)

응답 데이터

{ "상태"1 "코드": "10001", "데이터"널 "MSG": "登录 成功"}

에 http : // *** : 8080 / futureloan / MVC / API / 회원 / 로그인

(200)

프로세스 종료 코드 0으로 완료

json으로 파라미터를 사용하여 예를 들면

"" "

------------------------------------

@Time : 2019년 7월 12일 10시 22분

@Auth : 울트라 리눅스

@file : requests_blog.py

@IDE : PyCharm

@Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

------------------------------------

"" "

가져 오기 요청

login_url = r'http : //***monban.com : 8080 / futureloan / mvc / api / member / login '# 연 구 지역 址

login_data = { "모바일 폰": "13691579841", "PWD"# 123456} 인터페이스 필요한 파라미터

응답 = requests.post (URL = LOGIN_URL, JSON = login_data) #은 POST 요청을 보내

인쇄 (response.text) # 응답 데이터를 페치

인쇄 (response.url)

인쇄 (response.status_code)

응답 데이터

{ "상태": 0, "코드": "20103", "데이터"널 (null) "MSG" "전화 번호는 비워 둘 수 없습니다"}

에 http : // *** / futureloan / MVC / API / 회원 / 로그인

(200)

프로세스 종료 코드 0으로 완료

  내가 인터페이스는 응용 프로그램 / JSON 데이터 형식을 지원하지 않습니다 여기에 사용 때문에, 결과는 동일하지 않습니다 인수, 데이터 매개 변수 및 매개 변수 JSON의 사용을 볼 수 있습니다, 그래서 당신은 JSON 매개 변수 전달 매개 변수를 사용하는 경우, 서버는 데이터를 확인할 수 없습니다 인터페이스에 의해 지원되는 실제 데이터의 종류에 따라 선택 될 필요 JSON 파라미터를 사용할 때,이 파라미터 데이터에 사용되는 경우, 올바른 결과를 반환하지 않는  PARAMS 차분 데이터  이미 요청 PARAMS 얻을 상기 요청 매개 변수의 매개 변수와 POST 데이터, 다음 끝 어떤 차이점이 두 가지 매개 변수는 만드는가? 아무런 요청 본문 GET 요청이 없기 때문에 1 GET 요청의 송신은, 상기 요청 URL 매개 변수는 어드레스 이후 수행 할 수 있으며, 서버는 단지 요청 URL 파라미터를 분석함으로써 얻어 질 수 있으므로 GET 요구가 송신시에있어서 만 사용) (GET 사용자가 URL 주소 2. 추가에서 특정 데이터를 제출해야하는 경우 PARAMS 매개 변수, 그것은 양식을 제출 요청 양식을 게시, 일반적으로, 요청이 POST 요청에 대해 일반적으로 요청의 매개 변수를 기본값으로, 우리는 만들 수 있습니다 데이터 사전 포맷 POST 요청은 요청 체이며, 요청 파라미터는 요청 본문에 저장 될 수 있기 때문에, 데이터 전송 파라미터를 이용하여 컨텐츠 요청을 수득 요청 파라미터의 몸체를 파싱하여 서버에만 요청이 게시 할 수있다 PARAMS에만 데이터 등, JSON 파일을 사용하여 사용할 수있는 인터페이스 파라미터들을 전달 된 데이터 요청 파라미터들은 바디 파라미터에 요청할

세션 클래스 마법을


  연습, 우리는 종종 추적하는 등 인터페이스의 테스트를 위해, 특정 상태를 유지할 필요가 발생 : 충전 인터페이스, 그것은 사용자가 로그인 할 필요하며이 사건을 해결하는 방법을 다음 충전하려면 로그인 유지 그것은? 세션 클래스에 사용은, 세션 우리가 웹 사이트를 방문 할만큼 우리가 후 로그인 사이트의 모든 페이지를 검색 할 수로, 요청을 보유하고있는 다음의 예에서 볼 수있는 라이브러리를 요청

"" "

------------------------------------

@Time : 2019년 7월 12일 10시 22분

@Auth : 울트라 리눅스

@file : requests_blog.py

@IDE : PyCharm

@Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

------------------------------------

"" "

가져 오기 요청

LOGIN_URL = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 로그인 '# 로그인 인터페이스 주소

login_data = { "모바일 폰": "13691579841", "PWD"# 123456} 인터페이스 필요한 파라미터

response_login = requests.post (URL = LOGIN_URL, 데이터 = login_data) # 로그인 요청이 게시물을 전송

인쇄 (response_login.text)

recharge_url = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 충전 '# 충전 인터페이스 주소

recharge_data = { "모바일 폰": "13691579841", "양"10000.00} # 인터페이스 필요한 파라미터

response_recharge = requests.post (URL = recharge_url, 데이터 = recharge_data) # 재충전을 시작하는 요청을 보내

인쇄 (response_recharge.text)

  결과

{ "상태"1 "코드": "10001", "데이터"널 "MSG": "登录 成功"}

{ "상태": 0, "코드"널 (null), "데이터"널 (null) "MSG": "죄송합니다, 로그인하시기 바랍니다."}

프로세스 종료 코드 0으로 완료

  찾을 수 있습니다, 그것은 이미 우리 앞에 로그온하지만 충전 Shique는 이유는 바로 때 요청을 전송하는 reauests 및 (HTTP 요청 결함 인)의 현재 상태를 유지하지 않습니다, 실패, 그리고 지금 우리는 세션을 사용하려면있다 다시 코드를 수정, 충전 요청을 전송

"" "

------------------------------------

@Time : 2019년 7월 12일 10시 22분

@Auth : 울트라 리눅스

@file : requests_blog.py

@IDE : PyCharm

@Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

------------------------------------

"" "

가져 오기 요청

요청 requests.Session = () 세션 # 初始化

LOGIN_URL = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 로그인 '# 로그인 인터페이스 주소

login_data = { "모바일 폰": "13691579841", "PWD"# 123456} 인터페이스 필요한 파라미터

response_login = request.request (방법은 = '포스트', URL = LOGIN_URL, 데이터 = login_data) #은 POST 요청 로그인을 보내

인쇄 (response_login.text)

recharge_url = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 충전 '# 충전 인터페이스 주소

recharge_data = { "모바일 폰": "13691579841", "양"10000.00} # 인터페이스 필요한 파라미터

response_recharge = request.request (방법 = '포스트'는 URL = recharge_url, 데이터 = recharge_data) # 재충전을 시작하는 요청을 보내

인쇄 (response_recharge.text)

결과

 { "상태"1 "코드": "10001", "데이터"널 "MSG": "登录 成功"}

 { "상태"1 "코드": "10001", "데이터"

  { "ID"5451 "regname": "검사", "PWD": "E10ADC3949BA59ABBE56E057F20F883E", "모바일 폰": "13691579841", "leaveamount": "15000.00", "종류": "1", "regtime" "2019년 5월 26일 19 : 08 : 44.0"},

  "메시지": "성공 충전"}

  프로세스 종료 코드 0으로 완료

   찾을 수 있습니다, 우리는 충전 요청이 성공적으로 전송하는 세션 객체를 사용합니다. 음,이는 원인이 무엇인가? 우리가 응답 정보를 얻을 수있는 서버에 첫 번째 요청이 설정 - 쿠키 필드를 포함 할 때 간단하게 우리가 정보를 기록 쿠키를 저장, 넣어, 우리는이 상태를 유지하려는 경우, 당신은 다시 서버에 액세스 할 때 수행해야 쿠키는이 상태를 유지하기 위해 서버에 전달. 우리는 세션 객체가 요청을 보냅니다 사용하면 세션이 자동으로 세션이 자동으로 우리가 수동으로 쿠키를 추가하여 상태 로그를 유지, 매개 변수를 요청하지 않고 서버에 전달 쿠키에 대해, 후속 것, 우리가 공정 위에서 설명한 완료하는 데 도움이 될 것입니다 의존적 동작이 정상적으로 수행 될 수있다

 

간단한 캡슐화 reqests

 

  직접 라인에, 라이브러리가 잘 포장 된 요청을 요청할 수 있습니다 어떤 사람들은, 왜 한 번에 패키지를 소유 하는가? 패키지를 통해 첫 번째는, 난 그냥 우리가 테스트 데이터는 종종 내부 엑셀 시트에 저장되어 필요가 같은 통합 데이터 인터페이스 요청을 전달하는 사전을 사용하여 모든 요청 매개 변수를 넣을 수 있습니다, 우리가 후면에 도착 문자열, 문자 요청 매개 변수 문자열이 전달되지 않기 때문에, 그래서이 과정을 절약하기 위해, 인터페이스에 전달되기 전에 때마다 데이터 변환을 수행, 난 단지 패키지가 자동으로이 내가 할 수있는 각각의 촬영 데이터를 요청 처리해야 내가 두 번째 처리 준다. 나는 상태를 유지하고자 할 때, 때마다 세션 개체를 초기화하고 싶지 않아 나는 아래의 패키지 코드를보고 직접 호출 후, 나의 요청에 패키지 내부에 넣을 수 있습니다

1 """

2 ------------------------------------

3 @Time : 2019년 7월 12일 16시 14분

4 @Auth : 울트라 리눅스

5 @file : sendrequests.py

6 @IDE : PyCharm

7 @Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

(10) ------------------------------------

11 "" "

12 수입 JSON

13 개 가져 오기 요청

(14)

(15)

16 클래스 HttpRequests (객체) :

17 "" "

예 18 : 요청 HttpRequests = ()

19 = 응답 요구 (방법, URL 데이터)

20

반응 21 = request.send_request (방법, URL 데이터)

(22) 인쇄 (response.text)

23 "" "

24 DEF __init __ (자기) :

25 self.session requests.Session = ()

(26)

만약 send_request 27 DEF (자기, 방법, URL params_type = '형태'데이터 = 없음 ** kwargs로) :

방법 28 = method.upper ()

29 params_type params_type.upper = ()

30 isinstance 경우 (데이터 STR) :

31 시도 :

(32) 데이터의 json.loads = (데이터)

예외를 제외하고 33 :

34 개 = 평가 데이터 (데이터)

(35)가 'GET'== 방법 :

반응 36 = self.session.request (= 방법에있어서, URL = URL에있는 params = 데이터 ** kwargs로)

37 ELIF "POST"== 방법 :

38 params_type == 'FORM'경우 # 폼 데이터 전송, 데이터 전송 파라미터를 사용하여

반응 39 = self.session.request (= 방법에있어서, URL = URL 데이터 = 데이터 ** kwargs로)

40 ELIF의 params_type == 'JSON'# 1 인터페이스는 애플리케이션 / JSON 타입 JSON을 사용하여 전송 매개 변수를 지원하는지

반응 41 = self.session.request (= 방법에있어서, URL = URL, JSON = 데이터 ** kwargs로)

(42) 다른 사람 : # 인터페이스는 파일을 업로드와 같은 다른 유형의 데이터의 전달을 필요로하는 경우, 요청은 다음과 같은 방법을 호출

반응 43 = self.session.request (= 방법에있어서, URL = URL ** kwargs로)

요청 모드 # 44 불평하는 비 게시물을 얻을 경우, 물론, 다른 요청 방법을 계속 추가 할 수 있습니다

다른 45 :

46 ValueError를 인상 ( '요청 방법 "{}"오류! check'.format하십시오 (방법))

창 (47)의 대응

(48)

49 DEF __call __ (자기, 방법, URL params_type = '형태'데이터 = 없음 ** kwargs로) :

50 리턴 self.send_request (방법, URL

51 params_type = params_type,

52 시간 = 시간

53 ** kwargs로)

(54)

55 데프 close_session (자기) :

56 self.session.close ()

57 시도 :

58 델 self.session.cookies [ 'JSESSIONID']

59 제외 :

60 개 패스

(61)

(62)

요청 HttpRequests 63 = ()

(64)

(65)

만약 66 __name__ == '__main__':

67 개 패스

   이 패키지는 물론, 당신은 또한 요청 후, 삭제 등을 넣어 코드의 30-34 라인을 설명하기 위해 더 많은 요청 방법을 달성하기 위해 코드의 32 개 라인을 추가 할 수 있습니다 만 가져 오기 요청 및 게시 요청을위한  이 JSON을 위해 데이터의 몇 줄입니다 및 사전 형식으로 데이터의 문자열 타입 및 특별한 형태를 처리 할 수있다 (사전을 이용하여 송신 인터페이스 파라미터) 등은 다음과 같은 형태로 얻어  '{: 없음 "모바일 폰" #의 "PWD"NULL} 문자열 사전이 null이 아니기 때문에 유형은,하지만, 형태, 문자열이 아닌 사전 형식의 JSON 문자열 아니다

 

패키징 및 테스트


  이제 우리는 테스트 및 인터페이스 전송 요청 로그인을 재충전하는 좋은 방법을 포장 사용하십시오

"" "

  ------------------------------------

  @Time : 2019년 7월 12일 16시 16분

  @Auth : 울트라 리눅스

  @file : test_requests.py

  @IDE : PyCharm

  @Motto : 실제 전사, 의기 소침 한 경고를 얼굴을 감히의 예리한 오류에 직면 감히!

 

  ------------------------------------

  "" "

  sendrequests 가져 오기 요청에서

  수입 유닛 테스트

 

 

  클래스 TestRequests (unittest.TestCase) :

 

      # 로그인 인터페이스 주소

      LOGIN_URL = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 로그인 '

      # 로그인 인터페이스 테스트 데이터

      login_test_value = '{ "모바일 폰": "13691579841", "PWD": 123456}'

 

      # 충전 인터페이스 주소

      recharge_url = r'http : // *** : 8080 / futureloan / MVC / API / 회원 / 충전 '

      # 충전 인터페이스 테스트 데이터

      recharge_test_value = { "모바일 폰": "13691579841", "양"} 10000.00

 

      데프 test_login_api (자기) :

          "" "로그인 인터페이스 테스트 케이스." ""

          응답 = 요청 ( '수', URL = self.login_url, 데이터 = self.login_test_value)

          self.assertTrue (response.json () "코드"] == "10001")

          인쇄 ( "를 통해 로그인 인터페이스 테스트")

 

      데프 test_recharge_api (자기) :

          "" "충전 인터페이스 테스트 케이스." ""

          응답 = 요청 ( '수', URL = self.login_url, 데이터 = self.login_test_value)

          시험:

              충전 # 충전 인터페이스는 로그인해야합니다

              self.assertTrue (response.json () "코드"] == '10001')

          전자로 AssertionError를 제외하고는 :

              인쇄 ( '로그인 실패!')

              올리고

          그밖에:

              응답 요청 = ( '포스트'URL = self.recharge_url 데이터 = self.recharge_test_value)

              self.assertTrue (response.json () "코드"] == "10001")

              인쇄 ( "을 통해 상위 인터페이스 테스트")

 

  __name__ == '__main__'의 경우 :

  unittest.main ()

  -------------------------------------- 통해 테스트 결과 상위 인터페이스 테스트하여 인터페이스 테스트 로그 .. 0.570s에서 -------------------------------- 2 개 테스트 란

 

  승인

 

  프로세스는 우리가하지 무엇을 포장 문제를 수행하는 것이, 종료 코드 0 확인, 코드에 의해 수행 된 시험을 완료하고, 취득 및 사후 요청, 테스트 데이터는 문제를 해결하고 인터페이스 의존성 문제를 필요로 할 수 있습니다 일반적으로 전송 될 수 있습니다

개요


  마지막으로, 우리는이 문서에 관련된 모든 지식을 정리해 와서 1. 요청 전송 방법을 알아야 및 사후 요청은 요청을받을

수 (URL, PARAMS = 없음, ** kwargs로)

포스트 (URL, 데이터 = 없음, JSON = 없음, ** kwargs로)

  더 가져 오기 요청 이후 매개 변수 및 데이터 2. parmas 매개 변수 요청 본문의 차이는, 요청이 기본 매개 변수를 사용하여 POST 요청 본문 매개 변수 PARAMS가 URL에 추가됩니다 때, 당신은 전송 GET 요청 매개 변수 PARAMS 파라미터 데이터를 사용해야합니다, 매개 변수 요청이 몸에 저장됩니다 PARAMS는, 데이터를 사용해야하는 경우, 그들이 게시물을 지원하기 위해 지원 및 인터페이스를 얻을하지 않는 한, 동일 Seesion 상태 초기화 세션을 유지하는 인터페이스 문제를 해결 사용하는 방법을 데이터 3를 사용하여 요청 매개 변수를 얻을 수 없다, POST 요청을 보낼 수 없습니다 예를 들어,이 예를 호출 요청을 통해 () 메소드는 4. 포장의 가장 중요한 방법을 요청을 전송하고, GET 및 사후 요청을 캡슐화이 인터페이스를 사용하는 사용하는 방법

 

추천

출처www.cnblogs.com/liuyi1804/p/11538425.html