advanced scripting complex testing workflows postman
복잡한 테스트 워크 플로우를위한 Postman 고급 스크립팅에 대해 알아보십시오.
이 자습서에서는 복잡한 테스트 워크 플로를 실행할 수있는 Postman과 함께 고급 스크립팅을 사용하는 몇 가지 기본 예제를 살펴 봅니다.
한 요청에서 다른 요청으로 데이터 전달, 요청 체이닝 (예 : Postman 컬렉션 내 요청 실행 순서 제어 등)과 같은 예를 설명합니다.
DVD를 컴퓨터에 복사하는 소프트웨어
=> Easy Postman 교육 시리즈를 읽어보십시오.
학습 내용 :
Postman에서 요청간에 데이터 전달
요청간에 데이터를 전달하는 것은 다양한 유형의 Postman 변수를 사용하는 확장입니다. API 요청이 이전 요청의 응답 데이터에 의존하는 경우는 드물지 않습니다.
Postman을 사용하여 이러한 종류의 기능을 구축하려면 Postman 변수를 사용하여 이전 또는 이전 요청에서받은 응답에 따라 값을 설정하기 만하면됩니다.
다음은 비디오 자습서입니다.
이를 설명하기위한 예를 살펴 보겠습니다.
동일한 API를 사용합니다. https://reqres.in 2 개의 끝점 즉, 사용자 등록 및 사용자 세부 정보 가져 오기.
등록 엔드 포인트에서 반환 된 사용자 ID 값을 사용하여 사용자 세부 정보 메서드를 가져옵니다. 이는 환경 변수에 userId 값을 저장하고 결과 요청에서 해당 환경 변수를 사용하여 수행됩니다.
이러한 모든 스크립트는 Postman 요청 빌더 콘솔의 'Tests'탭에 포함됩니다.
스크립트가 어떻게 보이는지 보겠습니다.
#1) 사용자 끝점 등록의 경우이 API의 응답은 다음과 같습니다.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
이제 응답의 사용자 ID를 사용하여 GET 요청을 실행하려면 위 응답에서 ID 값을 가져와야합니다. 아래 스크립트를 사용하여이 JSON의 ID 값을 이름이 지정된 환경 변수에 저장합니다. userId.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
위의 스크립트를 사용하면 ID 값이 이제 userId 환경 변수에 저장되며 GET 사용자 요청 엔드 포인트를 실행하는 동안 동일한 값을 사용할 수 있습니다.
#두) 따라서 GET 사용자 요청은 아래와 같이 표시됩니다.
https://reqres.in/api/users/{(userId}}
첫 번째 요청이 실행되면 응답에서 UserID의 값을 가져 와서 다른 요청에서 사용할 수 있도록 환경 변수의 값을 업데이트합니다.
Postman에서 체인 요청
먼저 요청 체이닝의 기본 사용 사례를 이해 한 다음 Postman을 사용하여 요청 체이닝을 달성하는 방법을 자세히 살펴 보겠습니다.
eCommerce 사이트의 로그인 흐름 시나리오를 고려하고 로그인 한 사용자의 유효성을 검사합니다. 이제 사용자가 로그인하려면 먼저 사이트에 등록한 다음에 만 로그인 할 수 있습니다. 이것이 모바일 앱의 실제 사이트에서 API 호출을 실행하는 순서입니다.
통합 테스트 관점에서 살펴보십시오. API 테스트의 경우 먼저 다음을 수행해야합니다.
- 사용자가 성공적으로 등록하려면 API의 등록 끝점을 호출합니다.
- 그런 다음 로그인 끝점을 호출하고 로그인 한 사용자의 세부 정보를 확인합니다.
Postman을 사용하면 요청 실행 순서를 제어하는 것이 간단하지 않습니다. 기본 실행 순서는 위에서 아래로, 즉 Postman 컬렉션에서 요청이 선언되거나 생성되는 순서입니다.
다음 스크립트를 사용하여 요청 체인 또는 요청 실행 순서를 변경합니다.
postman.setNextRequest({{RequestName}});
실행중인 요청이 완료되면 워크 플로를 트리거하는 사전 요청 스크립트 또는 사후 요청 스크립트 (또는 Postman 요청 작성기의 테스트 탭)에이 요청 체인 스크립트를 추가해야한다는 점에 유의해야합니다.
여기서 {{RequestName}}은 Postman 컬렉션에서 구성되거나 설정된 실제 요청 이름입니다.
Request chaining 개념을 설명하기 위해 4 개의 서로 다른 요청으로 Postman 컬렉션을 구성 해 보겠습니다. 4 개의 요청으로 새 컬렉션을 만듭니다 (동일한 API를 사용합니다. https://reqres.in 이를 설명하기 위해).
컬렉션의 4 가지 요청은 다음과 같습니다.
# 1) POST 사용자 등록 요청 ( https://reqres.in/api/register ) 아래에 이메일과 비밀번호가있는 필드가있는 샘플 JSON 본문이 있습니다.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#두) 로그인 엔드 포인트 ( https://reqres.in/api/login ) 위와 동일한 요청 본문으로.
#삼) 사용자 ID로 GET 요청 4.
우리가 달성하고자하는 워크 플로우는 다음과 같습니다.
등록 (POST)-> 사용자 정보 (GET)-> 로그인 (POST)
이러한 요청이 어떻게 구성되어 있든 상관없이이 순서대로 실행되도록 워크 플로를 생성합니다.
요청의 이름은 각각 사용자 등록, 사용자 가져 오기 및 사용자 로그인으로 지정됩니다. 이러한 요청 이름을 스크립트에 정확하고 정확하게 지정하는 것이 중요합니다. 그렇지 않으면 워크 플로가 중단됩니다.
이제 스크립트가 어떻게 보이는지 보겠습니다.
#1) 등록을위한 POST 요청.
postman.setNextRequest('Login User');
#두) 로그인을위한 POST 요청.
postman.setNextRequest('Get User');
#삼) 사용자 세부 정보를 얻기위한 GET 요청. 이 요청 후에는 아무 일도 일어나지 않기를 바라는 것이 중요합니다. 여기에 워크 플로 스크립트를 추가하지 않으면 Postman 컬렉션은 논리적 또는 기본 순서로 다음 요청을 재개하도록 설계되었습니다.
따라서 컬렉션의 원래 요청 순서가 다음과 같다고 가정합니다. 등록, 사용자 얻기 과 로그인 우리의 워크 플로우는 사용자 얻기 컨트롤은 다음에 어떤 요청을해야할지 모르기 때문에 다음 논리적 요청으로 이동합니다. 로그인 궁극적으로 무한 루프가 발생합니다.
이러한 상황을 방지하려면 다음을 사용하여 워크 플로를 종료하는 것이 좋습니다.
크롬을위한 최고의 팝업 차단 확장 프로그램
postman.setNextRequest(null)
컬렉션 실행 중에 위의 스크립트가 발생할 때마다 워크 플로 실행이 중지되고 컬렉션 실행기가 종료됩니다.
다음 요청에 대한 순환 참조가있는 경우 컬렉션 실행기가 무한 루프에 갇혀 조만간 메모리 누수가 발생합니다.
워크 플로를 실행하려면 첫 번째 또는 시작 요청을 수동으로 실행해야합니다. 게시하면 요청 후 스크립트에 정의 된대로 워크 플로를 따릅니다.
즉, 워크 플로의 일부로 실행해야하는 첫 번째 요청도 컬렉션 또는 컬렉션 폴더의 첫 번째 요청이어야하므로 워크 플로 실행은 워크 플로의 첫 번째 요청이기도 한 첫 번째 요청으로 시작됩니다. .
Postman을 사용한 고급 워크 플로 체인
위에서 논의한 예는 동일한 컬렉션의 요청 집합간에 워크 플로를 구성한 선형 워크 플로에 가깝습니다. 일부 응답 값 또는 환경 변수를 기반으로 요청을 여러 번 반복하는 데에도 동일한 기술을 사용할 수 있습니다.
사용자가 제품을 검색하여 장바구니에 추가하고 동일한 작업을 5 번 수행해야하는 시나리오를 테스트해야하는 장바구니 앱에 대한 통합 테스트를 고려하십시오. 즉, 장바구니에 총 5 개의 항목이있을 때까지 드디어 체크 아웃.
따라서 이러한 종류의 테스트에 대한 선형 흐름을 작성하는 경우 컬렉션에서 개별 요청을 반복하고 기본적으로 컬렉션에는 항목 검색에 대한 5 개의 요청, 카트에 제품을 추가하는 데 5 개의 요청, 1 개의 체크 아웃을 요청하십시오.
이 워크 플로 기능을 사용하면 컬렉션에서 동일한 요청이 반복되는 것을 방지하고 워크 플로를 사용하여 요청간에 반복 할 수 있습니다.
이러한 시나리오의 흐름 순서를 살펴 보겠습니다. 그런 다음 환경 변수 조합과 함께 Postman 워크 플로를 사용하여 사용 / 작성할 수 있습니다.
Postman 워크 플로를 사용하여 Spotify 재생 목록을 만드는 흥미로운 예도 있습니다. 보내다 여기 자세한 내용은.
중요한 팁
다음은 워크 플로를 구축하는 동안 기억해야 할 몇 가지 중요한 팁입니다.
- 수집을 실행하는 동안 postment.setNextRequest가 설정되지 않은 요청이 거의없는 경우 기본 수집 순서로 실행이 계속됩니다. 따라서 일반적으로 모든 요청에 Postman.setNextRequest를 포함하거나 포함하지 않는 것이 좋습니다.
- 컬렉션으로 실행할 때 컬렉션 내에 폴더가있는 경우 동일한 폴더에 속한 요청에만 Postman.setNextRequest를 사용할 수 있습니다. 즉, 요청 선택이 현재 폴더를 넘어갈 수 없습니다.
- Postman.setNextRequest는 언급 된 위치와 순서에 관계없이 요청 후 또는 사전 요청 스크립트에서 실행되는 마지막 문입니다.
setNextRequest에 대해 여러 값이 발견 된 경우 마지막에 언급 된 값이 유효합니다.
결론
이 튜토리얼에서는 Postman의 서로 다른 요청간에 데이터를 전달하기 위해 환경 및 로컬 변수를 결합하는 것과 같은 몇 가지 고급 스크립팅 주제와 루프 및 분기와 같은 고급 기능을 허용하는 Postman 요청 체인을 사용하여 요청의 실행 순서를 제어하는 방법을 다뤘습니다.
다른 API와 상호 작용하는 방식으로 애플리케이션의 동작을 모방하는 멋진 기능이며 API 엔드 포인트와의 통합 테스트를 사용하여 엔드 투 엔드 워크 플로를 작성하는 데 도움이됩니다.
=> 여기에서 완벽한 우편 배달부 교육 안내서를 확인하십시오.
추천 도서
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 시험 입문서 eBook 다운로드
- POSTMAN 자습서 : POSTMAN을 사용한 API 테스트
- LoadRunner VuGen 스크립팅을 사용한 웹 서비스 성능 테스트
- 다른 API 형식을 테스트하기 위해 Postman을 사용하는 방법?
- HP LoadRunner 자습서를 사용한 부하 테스트
- 데스크톱, 클라이언트 서버 테스트 및 웹 테스트의 차이점
- 신규 또는 고급 테스터입니까? 이 카드 게임에서 찾기