지금은 API 테스트를 진행하라고 하면 rest-assured를 사용하기 때문에 다른 도구 사용할 일이 없지만
그래도 api testing 도구라고 하면 제일 많이 사용되는 도구가 뭐냐고 하면 SoapUI라고 말할 것 같다.
이전에 SoapUI를 업무에 잠시 활용했을 때 나름 정리해두었던 내용을 여기에 다시 게시한다.
기본적인 사용법은 여기저기에 더 잘 정리되어 있으니, 생략하고.. tip 위주로..
Property 제어
- 프로퍼티는 동적으로 변경되는 값, 자주 변경되어야 하는 값을 처리할 때 사용하고, 가급적 프로젝트 레벨(혹은 Suite레벨)로 관리하자.
- 예) Endpoint URL, Username, MDN 등
- 프로퍼티 제어는 Groovy Script를 활용하거나 Property Transfer 등을 활용한다.
Assertion
- xml형식의 response message 중 단순 string추출이 아닌 특정한 형식의 값을 추출해낼 수 있는 방법으로 xpath 를 사용한다.
- xml syntax 참고 : http://www.w3schools.com/xpath/xpath_syntax.asp
- SoapUI에서는 xpath문법을 그대로 사용하면 동작하지 않는다. 아래 예제를 참고하여 작성하기 바란다.
xml response의 namespace값을 꼭 사용해야 한다.
expression부분에 하기와 같이 작성한다. 하기 예제는 response message중 첫번째로 보이는 spotCode의 value값을 가져온다.
declare namespace ns1="http://www.naver.com"; //ns1:spotCode[1]
- Contains/NotContains 의 Assertion에 RegularExpression을 사용하여 적용할 수 있다. 이를 사용하면, 특정 string값이 아닌 원하는 형태의 문장을 비교할 수 있다.
- Regular Expression 연습하기 좋은 사이트 url : http://www.regerx.com
- SoapUI에서는 Regular Expression 문법을 그대로 사용하면 동작하지 않는다. 아래 예제를 참고하여 작성하기 바란다.
response message가 json형식일때를 예로 들어, code값이 4만에서 5만번 사이의 숫자가 포함되는 조건을 추가하기 원한다면,
Contains/Not Contains Assertion에 use token as Regular Expression 체크박스를 체크하고, Content박스에 하기의 예와 같이 입력한다.
(?s).*"code": "[4,5]\d{4}".*
(3) Script Assertion
Groovy Script
- Javascript를 수행해야 하거나, Property를 제어하고자 할 때 많이 사용한다.
- Property 수행예제, javascript 실행 예제, cookie 예제를 하나씩 정리한다.
(1) Property 수행 예제
(2) JavaScript 실행 예제
(3) Cookie 설정 예제
Reporting
- https://www.soapui.org/reporting/getting-started.html
- https://www.soapui.org/reporting/generating-html-reports.html
Jenkins 연동하기
1. 준비하기
jenkins에 아래와 같은 plugin이 설치되어 있어야 한다.
junit attachments plugin
junit plugin
git plugin
- svn plugin
jenkins가 구동되는 장비에 soapUI가 설치되어 있어야 한다.
2. 수행하기
(0) Jenkins에서 프로젝트(new jobs) 생성 후..
(1) 소스(script) 코드 관리 부분 설정
- 소스(soapui script)를 버전관리시스템(리파지토리, 현재 bitbucket)에서 가져오도록 설정
(2) Build 부분 설정
execute shell을 선택
- command입력박스에 아래와 같이 입력 (SoapUI 의 TestRunner 수행을 위한 CommandLine 명령어를 넣어준다)
export JAVA_HOME=/app/jdk1.7.0_80; SOAPUI_HOME=/home/SoapUI-5.2.1; export SOAPUI_HOME; export PATH=$JAVA_HOME/bin:$PATH; export WORKSPACE=$WORKSPACE/MyWorkspace; rm -rf $WORKSPACE/report/JReport/*.xml; $SOAPUI_HOME/bin/testrunner.sh -a -j -I -f$WORKSPACE/report/JReport -PEndpoint=www.naver.com $WORKSPACE/test_api_project.xml
- workspace는 soapui스크립트가 존재하는 곳을 지정하는 것이 좋음.
- -f 옵션은 결과파일 위치 지정, -P옵션은 스크립트 수행에 필요한 파라미터입력
- 수행 전 기존 결과파일은 삭제하는 것이 좋음.
(3) 빌드후 조치 부분 설정
publish junit test result report 선택
Test report XMLs : MyWorkspace/report/JReport/*.xml
Additional test report features 체크박스 체크.
'QA > Test Automation' 카테고리의 다른 글
junit 4.x 에서 csv파일로 data driven test 구현하기 (0) | 2018.01.30 |
---|---|
Rest-Assured를 활용한 API 테스트 자동화 (0) | 2018.01.28 |
API 테스트 방법 (0) | 2018.01.27 |
자동화에 extent report 적용하기 (0) | 2018.01.22 |
Jenkins와 Sonar 연동하기 (0) | 2012.07.19 |