SoapUI 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제
1. 도구개요 1.1 도구정보요약 도구명 SoapUI 라이센스 LGPL (http://www.soapui.org) 소개 서비스지향아키텍처 (SOA) 및웹서비스에대한오픈소스웹서비스테스트응용프로그램및 플러그인 특징 웹서비스의 Inspection 웹서비스의호출 웹서비스의개발 웹서비스시뮬레이션및 Mocking 웹서비스의기능, 부하, 규정및보안테스트 주요기능 웹서비스의테스트 실행환경 Windows, Liunx, MacOS, UNIX 사전설치도구 WSDL 테스트 : 없음 Plug-in 설치 : JDK, WAS 카테고리 Testing 최신버전 8.1 (2015-11-04) 관련도구 Intellij IDEA, NetBeans IDE, Eclipse RCP 2
1. 도구개요 1.2 스크린캡처및주요기능 IDE 통합및도구지원 : Eclipse, IntelliJ, NetBeans 다중스레드활용한로드테스트 SOAP, Rest 통신방식의테스트지원 3
2. 설치및실행 세부목차 2.1 SoapUI 다운받기 2.2 SoapUI 설치하기 2.3 SoapUI 설치확인하기 2.4 NetBeans 6.5.1 다운및설치 2.5 NetBeans 설치확인하기 4
2. 설치및실행 2.1 SoapUI 다운받기 http://www.soapui.org 에서최신버전다운로드 본매뉴얼에서는윈도우 64bit 버전다운로드 5
2. 설치및실행 2.2 SoapUI 설치하기 (1/3) 설치파일실행 6
2. 설치및실행 2.2 SoapUI 설치하기 (2/3) 설치파일실행 7
2. 설치및실행 2.2 SoapUI 설치하기 (3/3) 설치파일실행 8
2. 설치및실행 2.3 SoapUI 설치확인하기 SoapUI 설치결과 설치직후 SoapUI 를실행한모습 9
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (1/6) https://netbeans.org 접속하여 NetBeans 최신버전다운로드 Download 클릭 10
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (2/6) 다운받은파일을설치 : Welcome 화면 압축해제후첫화면에서설치할 Application server 를체크하고 Next 11
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (3/6) 다운받은파일을설치 : 약관동의 약관에동의후 Next 12
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (4/6) 다운받은파일을설치 : 설치폴더지정 IDE 설치경로와사용할 JDK 경로를설정하고 Next 13
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (5/6) 다운받은파일을설치 : WAS 설정 NetBeans 에서사용할 WAS 중하나인 Glass fish Server 설치경로지정후 Next 14
2. 설치및실행 2.4 NetBeans 6.5.1 다운및설치 (6/6) 다운받은파일을설치 : 설치최종확인 설치할경로와공간등을확인후 Install 15
2. 설치및실행 2.5 NetBeans 설치확인하기 NetBeans 설치결과 Service 탭에기본적으로몇개의 WAS 가설치되어있는것을확인할수있음 16
세부목차 3.1 SoapUI의개요 3.2 WSDL과 WS-BPEL 3.3 웹서비스의구현 3.4 웹서비스의배포및 WSDL 생성 3.5 SoapUI 테스트환경설정 3.6 SoapUI 테스트수행 3.7 주요추가기능 (4.6.2) 17
3.1 SoapUI 의개요 SoapUI : 오픈소스기반의웹서비스테스트툴 기본적으로 SOAP 방식을지원하나, REST 방식모두지원 Java Swing 으로개발되어 GUI 를제공 IDE 에통합하여테스트를수행할수도있으며, WSDL 만가지고도테스트가가능 WSDL 을기본적으로분석, 기본테스트템플릿을자동생성함으로써, 초보자도테스팅가능 웹서비스호출및결과값제공은기본으로, 로드, 부하, 규정테스트를쉽게진행할수있음 18
3.2 WSDL 과 WS-BPEL (1/4) WSDL : Web Services Description Language SoapUI 의테스트가되는대상 웹서비스기술언어및기술된정의파일의총칭 XML 로기술되며, 웹서비스의구체적내용이기술되어있다 서비스제공장소, 서비스메시지포맷, 프로토콜 19
3.2 WSDL 과 WS-BPEL (2/4) WSDL : Web Services Description Language 웹서비스를이용하기위한서비스주소및의사소통형식을정의 type : WSDL 내부에서사용할변수형태와내용을정의 message : 웹서비스와상호의사소통할메시지를정의 (Type 에서선언된형태를바탕으로구성 ) porttype : 메시지의통로가되는포트를정의 ( 일반적으로 Operation 과매칭 ) binding : WSDL 의 Bind 형태를정의 (HTTP, SOAP 등 )» 각 Operation 별로 Binding 을정의할수있음 service : Binding 된내용을통해의사소통할직접적인 Service URI 을정의 20
3.2 WSDL 과 WS-BPEL (3/4) WS-BPEL : Web Service - Business Process Execution Language 웹서비스조합과명세의표준 서비스들간의계약, 잘정의된인터페이스, 상호연관기반환경제공 XML 로기술되며, 서비스조합의내용이여러명령어를통해기술되어있다 Invoke, Assign, Receive, Reply, if, while, flow, wait 등 21
3.2 WSDL 과 WS-BPEL (4/4) WS-BPEL : Web Service - Business Process Execution Language 웹서비스조합과명세의표준, 서비스들간의계약, 잘정의된인터페이스, 상호연관기반환경제공 partnerlink : 서비스조합에참여하는서비스 variables : WS-BPEL 내부에서사용할변수 sequence : WS-BPEL 에서구조적으로처리할순서를정의» Invoke : 서비스를호출» Receive : 파트너링크나, WS-BPEL 의 WSDL 에서메시지수신» Reply : 파트너링크나, WS-BPEL 의 WSDL 에서메시지답장» Assign : 지정된변수를할당하거나대입등처리» While : 지정된조건동안반복» Flow : 병렬적, 동시적으로처리하며, 처리된모든내용이하나로모일때까지대기한다» If : 조건에따른분기 22
3.3 웹서비스의구현 (1/8) 웹서비스의구현 : NetBeans Web Application 프로젝트생성 여러도구와형태로웹서비스의구현이가능하나, 본매뉴얼에서는 NetBeans 의기능을통해구현 New Project Java Web Web Application 23
3.3 웹서비스의구현 (2/8) 웹서비스의구현 : NetBeans Web Application 프로젝트생성 프로젝트이름입력 Next 24
3.3 웹서비스의구현 (3/8) 웹서비스의구현 : NetBeans Web Application 프로젝트생성 서버종류와경로설정 Finish (Next 눌러서프레임워크설정이가능 ) 25
3.3 웹서비스의구현 (4/8) 웹서비스의구현 : 생성된프로젝트 WAS 작동확인 프로젝트마우스우클릭 Run 하거나, Main Project 로설정되어있을시아이콘클릭 TODO write content 출력시정상작동 26
3.3 웹서비스의구현 (5/8) 웹서비스의구현 : 웹서비스를위한 Java 파일생성 프로젝트마우스우클릭 Web Service 웹서비스이름입력 패키지선택 Finish 27
3.3 웹서비스의구현 (6/8) 웹서비스의구현 : Operation 의정의 Design 에서 Remove Operation 을이용해 Operations 목록을비움 Add Operation Name, Return Type 입력후 Add 클릭하여입력값설정 Name, Type 설정 OK 28
3.3 웹서비스의구현 (7/8) 웹서비스의구현 : 2 개의 Operation 의정의결과 같은방법으로 Operation 을정의 29
3.3 웹서비스의구현 (8/8) 웹서비스의구현 : Java Code 구현 단순한덧셈 / 뺄셈연산만되도록구현 30
3.4 웹서비스의배포및 WSDL 생성 (1/4) 웹서비스의배포 : 프로젝트마우스우클릭 Deploy Run 으로대신해도, 실행하기위한배포작업수행, 배포시배포된상황을 Service 탭에서확인가능 31
3.4 웹서비스의배포및 WSDL 생성 (2/4) 웹서비스의배포 : 배포된웹서비스의테스트 CAdd 팝업메뉴 Test Web Service 실행시다음과같이배포된웹서비스의테스트가가능 32
3.4 웹서비스의배포및 WSDL 생성 (3/4) 웹서비스의배포 : WSDL 의생성 WSDL 파일링크를클릭할시현재배포되어있는 WSDL 파일을볼수있으며, 저장할수있음 33
3.4 웹서비스의배포및 WSDL 생성 (4/4) 웹서비스의배포 : WSDL 의생성 : Generate and copy WSDL 서비스의 URL 은배포하는위치로설정, WSDL 파일을열어현재배포된 WAS 설정시의항목을복사 34
3.5 SoapUI 테스트환경설정 (1/3) SoapUI 테스트환경설정 : 새로운프로젝트만들기 Project 마우스우클릭 New SOAP Project 클릭 35
3.5 SoapUI 테스트환경설정 (2/3) SoapUI 테스트환경설정 : 프로젝트이름, WSDL 입력 이름입력 이전에생성된 WSDL 입력 OK Create Requests : 모든오퍼레이션에대해요청작업테스트케이스를생성 Create TestSuite : Import 된 WSDL 이나 WADL 을통해테스트슈트를생성 Relative Paths : 프로젝트와관련된모든경로를저장 36
3.5 SoapUI 테스트환경설정 (3/3) SoapUI 테스트환경설정 : TestSuite 형식설정 WSDL 의오퍼레이션중선택적으로테스트가능, 각설정확인 OK TestSuite 이름입력 확인 37
3.6 SoapUI 테스트수행 SoapUI 테스트 : 기능테스트 테스트케이스의가장하단 Request 클릭 각변수에적절한수치입력 실행후결과확인 38
3.6 SoapUI 테스트수행 (1/5) SoapUI 테스트 : TestStep 지정된스텝을기준으로테스트를진행, 관련행위를여러스텝에의거하여추가할수있음 39
3.6 SoapUI 테스트수행 (2/5) SoapUI 테스트 : TestStep 의실행 2 회호출 ( 덧셈 ) 1 초딜레이 1 회호출 5 초딜레이 1 회호출의예 40
3.6 SoapUI 테스트수행 (3/5) SoapUI 테스트 : LoadTest 추가 Load Tests 마우스우클릭 로드테스트이름입력 OK 41
3.6 SoapUI 테스트수행 (4/5) SoapUI 테스트 : LoadTest 설정 스레드수및그래프표현, 딜레이및한계수치지정가능, 아이콘을클릭하면수행 42
3.6 SoapUI 테스트수행 (5/5) SoapUI 테스트 : LoadTest 결과 각시간및로드, 그리고그래프형태의결과분포도를보임 43
3.7 주요추가기능 (1/3) REST Service 테스트 REST 서비스프로젝트생성및테스트기능 44
3.7 주요추가기능 (2/3) Parameters 편집개선 Request Editor 에서바로편집가능 QUERY parameters HEADER parameters 45
3.7 주요추가기능 (3/3) Parameters 편집개선 Request Editor 에서바로편집가능 TEMPLATE parameters MATRIX parameters 46
4. 활용예제 세부목차 4.1 예제소개 4.2 예제웹서비스구현 4.3 SoapUI 프로젝트생성 4.4 SoapUI 기능테스트 4.5 SoapUI TestSuite 4.6 SoapUI Load Test 47
4. 활용예제 4.1 예제소개 예제시스템 : 서비스로구현된계산기의조합및테스트 계산기의구조사항계산기는 2개의서비스에나뉘어담김 ( 덧셈, 뺄셈 / 곱셈, 나눗셈 ) 각각개별의서비스로존재하는계산기능을테스트한다계산상일어날수있는오류를고의로발생시켜결과를확인 48
4. 활용예제 4.2 예제웹서비스구현 (1/3) SoapUI_AS 프로젝트구현 도구기능설명에사용하였던형태로덧셈과뺄셈오퍼레이션을가지는웹서비스구현 49
4. 활용예제 4.2 예제웹서비스구현 (2/3) SoapUI_MD 프로젝트구현 도구기능설명에사용하였던형태와비슷하게곱셈과나눗셈오퍼레이션을가지는웹서비스구현 50
4. 활용예제 4.2 예제웹서비스구현 (3/3) 프로젝트배포후확인, WSDL 복사 각각테스트페이지에서작동여부확인가능, 각자의 WSDL 을테스트프로젝트폴더에복사 51
4. 활용예제 4.3 SoapUI 프로젝트생성 SoapUI 테스트환경설정 : 새로운프로젝트만들기 Project 마우스우클릭 New soapui Project 2 개의 WSDL 을바탕으로 2 개의프로젝트생성 52
4. 활용예제 4.4 SoapUI 기능테스트 SoapUI 테스트 : 기능테스트설정 입력값을각자설정하고아이콘을클릭하여테스트수행 53
4. 활용예제 4.5 SoapUI TestSuite (1/2) SoapUI 테스트 : TestSuite 설정 두프로젝트모두 4 단계로구성, CMul 프로젝트에서는고의적으로 0 나누기오류를유발 54
4. 활용예제 4.5 SoapUI TestSuite (2/2) SoapUI 테스트 : TestSuite Test Steps 수행결과 예외처리로별다른무리는없었지만 0 나누기오류발생 55
4. 활용예제 4.6 SoapUI Load Test (1/3) SoapUI 테스트 : LoadTest 설정 Load Tests 마우스우클릭 로드테스트이름입력 OK 아이콘클릭하여시작 56
4. 활용예제 4.6 SoapUI Load Test (2/3) SoapUI 테스트 : LoadTest 진행 실시간으로계산하여결과도출 : 오류가있는응답의경우상대적으로높은값이나타남을확인 57
4. 활용예제 4.6 SoapUI Load Test (3/3) SoapUI 테스트 : LoadTest 결과 로드테스트수행결과 58