how automate api requests using rest assured
이 자습서에서는 Jenkins를 통해 테스트 스크립트를 실행하는 동안 REST Assured를 사용하여 API 요청을 자동화하는 방법을 배웁니다.
REST API Tutorial Series의 두 번째 튜토리얼에서 POSTMAN을 사용한 다양한 유형의 응답 코드, REST 요청, REST 모범 사례 및 API 테스트를 배웠습니다.
쉬다 웹 서비스는 개발, 구현, 액세스 및 실행이 쉽기 때문에 날마다 인기를 얻고 있습니다. 또한 가볍고 따라야 할 엄격한 표준이 없습니다.
그러나 더 많은 서비스가 존재하고 모든 새 빌드에서 실행해야하는 경우 테스터와 프로젝트 비용에 악몽이됩니다. 다시 말하지만, 일부 서비스는 프로젝트 자체와 관련된 내부 서비스이고 일부는 타사에서 사용하도록 빌드됩니다.
그래서 자동화에 대한 아이디어가 떠 올랐습니다. 다음과 같은 REST 서비스를 자동화하는 데 사용할 수있는 여러 도구가 있습니다.
- vRest
- HttpMaster
- 파라 소프트
- RestAssured
RestAssured는 테스터들 사이에서 인기있는 자동화 도구입니다. 이것이 선호되는 옵션 인 이유를 살펴 보겠습니다.
학습 내용 :
왜 RESTAssured인가?
- 오픈 소스이므로 모든 조직에서 프로젝트 요구 사항에 사용할 수 있습니다.
- REST Assured는 Java 라이브러리이므로 다른 도구처럼 GUI로 제공되지 않습니다. Java에서 REST 서비스를 테스트하는 프레임 워크입니다.
- 자동화 스크립트를 생성하기 위해 DSL (Domain-Specific Language)을 제공하고 Java와 같은 모든 기본 언어를 사용하며 RESTful 웹 API를 테스트합니다.
- 요청, 응답에 대해 XML 및 JSON 형식을 지원합니다.
- 헤드리스 클라이언트 역할을합니다.
- 이 라이브러리를 사용하여 서버로 보낼 요청을 사용자 정의 할 수 있습니다.
- 또한 복잡한 비즈니스 로직의 다양한 조합을 테스트 할 수 있습니다.
- 전송 된 요청에 대해 서버에서 상태 코드, 응답, 응답 본문, 헤더를 가져올 수 있습니다.
- BDD 스타일의 테스트 스크립트, 즉 GIVEN-WHEN-THEN 형식으로 작성하여 특히 IT가 아닌 배경의 모든 비즈니스 팀 구성원도이를보고 논리 및 테스트 범위를 이해할 수 있습니다.
이 튜토리얼에서는 POSTMAN을 통한 첫 번째 REST API 튜토리얼에서 수동으로 생성 한 요청을 자동화하고 GITHUB라는 상용 도구에 대해서도 설명합니다.
REST Assured를 사용하여 웹 API 요청 자동화
이 튜토리얼에서는 엔드-투-엔드 자동화, 즉 Java 클래스를 만들고 Jenkins에서 실행합니다.
전제 조건 :
- 받는 사람은 Eclipse IDE, Maven, TestNG, ReportNG에 대한 실무 지식이 있어야합니다.
- 수신자도 Jenkins를 알고 있어야합니다.
- 웹을 통해 배포 된 서비스에 액세스하려면 인터넷 연결이 필요합니다. 로컬로 배포 된 서비스에 액세스하는 경우 테스터에게 권한이 있는지 확인하십시오.
- 상업용 보안 사이트를 자동화하는 경우 인증 토큰, API 토큰, API 키 등이 제대로 작동하고 현재 스크립트를 자동화하고있는 테스터에게 제공되는지 확인합니다.
URL 테스트
- http://jsonplaceholder.typicode.com 실행 중입니다.
- 사용자에게 유효한 자격 증명이 있습니다. GitHub
환경 설정
#1) Eclipse IDE 설치
먼저 공식 웹 사이트에서 Eclipse IDE를 다운로드해야합니다. 식.
그런 다음 IDE를 설치하십시오. 경로, JAVA_HOME 환경 변수를 올바르게 설정하십시오. 나중에 사용할 수 있도록 JDK, JRE 경로를 편리하게 유지하십시오. Eclipse가 설치되면 작업 공간을 생성 / 설정하고 작업 공간을 엽니 다.
제 경우에는 다음과 같습니다.
#두) Maven 프로젝트 만들기
환경 변수를 통해 Maven 홈을 구성했는지 확인하십시오.
#삼) REST-ASSURED, TESTNG, REPORTNG와 관련된 모든 관련 필수 종속성 플러그인을 pom.xml에 추가합니다.
다음은 샘플 pom.xml입니다.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Maven 프로젝트 빌드 경로에 필요한 jar를 추가합니다.
일반적으로 이들은 REST 보증 jar, TESTNG, REPORTNG 아래에 제공되는 라이브러리 파일입니다. 종속성, 플러그인을 pom.xml 파일에 추가했지만 여전히 오류가 발생하므로 오류를 방지하기 위해 이러한 jar / 라이브러리를 추가하여 maven 프로젝트의 경로를 빌드해야합니다 (있는 경우).
그러나 Maven 프로젝트 대신 Java 프로젝트를 만들 때이 경우 이러한 jar, 라이브러리를 편리하게 유지하고 필요할 때 사용할 수 있어야합니다.
# 5) JENKINS 설치 (Windows)
jenkins.io/download/에서 Jenkins를 다운로드합니다.
그런 다음 설정을 열고 올바르게 설치 될 때까지 단계를 따릅니다.
설치가 완료되면 JENKINS를 시작해야합니다. 명령 프롬프트에서 동일한 작업을 수행 할 수 있습니다.
C : Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
위의 메시지가 표시되면 다음 메시지가 표시 될 때까지 잠시 기다려야합니다.
Jenkins가 완전히 실행되고있는 위 화면에서 마지막 메시지를 볼 수 있으므로 이제 다음 URL을 사용하여 Jenkins를 시작할 수 있습니다.
http : // localhost : 9090 /
처음에는 시간이 걸릴 수 있지만 나중에는 더 빠릅니다. 그 후에 사용자를 만들어야합니다.
사용자가 생성되면 Jenkins를 다시 시작하고 비밀번호로 UI에 액세스해야합니다.
Jenkin이 설치되면 Jenkin 관리> 전역 도구 구성을 통해 플러그인을 설치할 수 있습니다 (Jenkin 설치 중에도).
자동화 스크립트 생성
# 6) 새로운 JAVA CLASS를 만들고 TESNG로 변환 할 수 있습니다. 또는 직접 TESTNG CLASS를 만든 다음 새 XML 파일 (testng.xml)을 만듭니다.
Java에서 float를 선언하는 방법
단순성을 위해 두 개의 Java 클래스가 생성됩니다.
# 1) Tutorial1.java –이 파일은 더미 테스트 URL을 사용하여 GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT와 같은 모든 메소드의 사용을 포함합니다. https : jsonplaceholder.typicode.com.
URL이 이러한 응답을 반환하여 원래 URL처럼 작동하더라도 실제로는 서버를 통해 수정되지 않습니다. 클라이언트로부터 요청을받을 때 웹 서비스 속성과 반응을 보여주기위한 것입니다.
# 2) Tutorial2.java –이 파일에는 요점에 추가 된 댓글을 읽을 실시간 GitHub 예제가 포함되어 있습니다.
노트 : GitHub에 인증이 필요하므로 GitHub에 로그인 한 후 API 토큰 또는 기본 인증을 생성해야합니다. 설정 또는 POSTMAN 자체에서 인증 토큰을 생성 할 수 있습니다.
TESNG.XML
다음은 둘 다 실행할 XML 파일입니다. Tutorial1.java 과 Tutorial2.java
데모를 위해 실행할 모든 메서드를 제외하고 Tutorial1.java의 GET 메서드 하나만 실행되도록 설정했습니다. 그러나 실행 된 모든 메서드를 보려면 TestNG XML 파일을 대체해야합니다. 우리의 경우 TestNG 파일 이름은 testng1.xml입니다.
이제 위를 실행하면 Eclipse를 통한 testng1.xml 파일 그러면 우리는 다음을 얻을 것입니다 콘솔 출력.
(TestNGContentHandler) (경고) 파일 맨 위에 ''를 추가하는 것이 좋습니다. 그렇지 않으면 TestNG가 실패하거나 예상대로 작동하지 않을 수 있습니다.
(TestNG) 실행 중 :
D : RestAssured restapi testng1.xml
*** 방법 얻기 ***
Userid-(1) to-(3) Title-(운동이 고통 스럽거나 골칫거리 인 경우) 신체-(그리고 옳지 만 법은
그리고 모든 선거 또는 맹인의 즐거움은
또는 그로 인한 슬픔과 즐거움을 비난
불쾌하거나 불편한 일을 기꺼이 기꺼이 수고하고 있습니다.
*** 방법 끝 얻기 ***
————————————————–
REST API 자습서
실행 된 총 테스트 : 1, 실패 : 0, 건너 뛰기 : 0
————————————————-
다음은 Suite의 테스트 결과입니다.
다음은 TestNG에서 생성 한 기본 보고서입니다.
다음은 ReportNG에서 생성 한 보고서입니다.
이미 ReportNG를 구성 했으므로 위와 같이 총 통과 횟수, 실패 횟수를 명확하게 볼 수 있습니다.
명령 프롬프트를 사용하여 테스트 스크립트 실행
- 명령 프롬프트를 시작해야합니다
- 작업 디렉토리를 작업 공간 위치로 설정
- 빈 / 대상 위치 찾기
- 라이브러리 위치 찾기 / 만들기
- 먼저 프로젝트가 존재하는 디렉토리 세트가 필요합니다. 제 경우에는 D : RestAssured restapi입니다.
- Java – 키워드
- cp – 클래스 경로이며 프로젝트에서 Java 클래스가 존재하는 경로를 의미합니다.
- 표적 – Java 프로젝트에서 작업 할 때 bin 폴더와 동일합니다. Maven 프로젝트에서 작업하고 있으므로이 폴더를 갖게됩니다. 이 폴더 아래에 클래스, 테스트 클래스라는 두 개의 폴더가 더있을 수 있습니다. 실제 Java 클래스는이 두 폴더 사이에 존재해야합니다.
- Lib –이 폴더에는 Eclipse에서 테스트 스크립트를 실행하는 동안 사용한 모든 jar가 포함됩니다. 경우에 따라 폴더가 없을 수 있습니다. 따라서 폴더를 만들고 그 안에 모든 jar, 실행 파일 등을 보관해야 할 수도 있습니다.
- org.testng.TestNG testng1.xml – 이것은 구문과 같습니다. 마지막 부분은 testng1.xml은 원하는 테스트 스크립트를 실행하기 위해 호출되는 TestNG의 리소스 파일입니다.
완전한 명령은 다음과 같습니다.
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
그 후 Enter를 누르십시오.
노트 : Java 프로젝트에서 작업하는 동안 bin 폴더를 볼 수 있습니다. 그러나 Maven 프로젝트에서 작업하는 경우 대상 폴더와 일반 클래스가 있고 그 아래에 test-classes 폴더가 있습니다.
BAT 파일 생성 및 테스트 스크립트 실행
명령 프롬프트를 열고 위의 명령을 실행하여 테스트 스크립트를 실행하는 대신 명령을 텍스트 파일에 보관하고 저장하는 동안 다음과 같은 이름을 지정할 수 있습니다.
'run.bat'(run.bat 주위에 ''를 유지해야 함)
생성 된 후의 모습은 다음과 같습니다.
이제 '실행'을 두 번 클릭하십시오.
명령 프롬프트가 열리고 테스트 스크립트가 실행되고 실행이 완료되면 명령 프롬프트가 닫힙니다.
야후! 메일 최고의 이메일 서비스
JENKINS와 Maven, Java 통합
Jenkins에서 4-5 개의 구성을 만들어 Maven, Java와 통합하고 동일하게 실행해야합니다.
Jenkins에 로그인하면
Goto Manager Jenkins >> 글로벌 도구 구성
JDK 설치 경로 설정
노트 : Jenkin의 버전이 JDK / Java 버전을 지원하는지 확인합니다. Jenkins 버전 2.73에는 최소한 JDK / JAVA 버전 1.8이 필요합니다. 그렇지 않으면 테스트 스크립트를 실행하는 동안 문제가 발생합니다.
Maven 설치 경로 설정
그 후 Goto Manager Jenkins >> 시스템 구성
환경 변수 경로 설정
다음, 새 항목 생성
새 링크 만들기를 클릭하고 이름 작업에 대해 프로젝트 유형을 다음과 같이 선택하십시오. 자유형 . 지금은 다른 일에 대해 걱정할 필요가 없습니다.
작업이 생성되면 다음과 같이 표시됩니다.
이제 작업을 클릭하십시오.
아래 단계를 따르십시오.
- 왼쪽 패널에서 구성 링크를 클릭합니다.
- 일반 탭을 아래로 스크롤하고 고급 버튼을 클릭합니다.
- 사용자 정의 작업 공간 확인란을 선택하고 프로젝트 폴더 위치를 지정합니다.
그 후
- 더 아래로 스크롤하여 빌드 트리거
- 주기적으로 빌드 확인란을 선택합니다.
- 아래 언급 된대로 시간을 설정하십시오.
아래로 스크롤하여 빌드 이름을 설정합니다. 우리의 경우 실행 가능한 Windows 배치 명령입니다.
D : RestAssured restapi 폴더 인 run.bat 파일을 이전에 보관했던 동일한 위치에 있습니다.
지금까지 수행 한 모든 변경 사항을 저장하십시오.
이제 cron 작업이 실행될 때까지 기다리십시오. 빌드가 시작된 것을 볼 수 있습니다.
빌드가 성공적으로 실행되면 위 이미지에 지정된대로 빌드 # 20을 클릭해야합니다.
클릭 콘솔 출력 왼쪽 패널의 링크.
이제 다음과 같은 출력을 볼 수 있습니다.
결론
REST ASSURED는 언어에 관계없이 REST API를 자동화하는 데 매우 유용한 JAVA 라이브러리입니다. 그것은 많은 내장 옵션이 있습니다. 또한 흥미로운 기능, 옵션이 포함 된 많은 버전이 있습니다. XML, JSON 등과 같은 요청과 같은 다양한 형식을 지원합니다.
이 자습서에서는 Jenkins를 사용하여 테스트 스크립트를 실행하는 동안 RESTAssured를 사용하여 API 요청을 자동화하는 방법을 설명했습니다. 또한 Rest Assured가 API 요청을 자동화하는 데 더 나은 선택 인 이유도 설명했습니다.
이 Rest API 튜토리얼 시리즈를 즐겁게 읽으 셨기를 바랍니다!