용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.강원도 홍천 서석면에 위치해있으며 1급수 용오름계곡 바로 옆에 있습니다.홍천군 1등 마을로 마을에서 직접 관리하는 용오름캠핑장,펜션 10개를 운영하고 있으며 각종 모임이 가능하도록 식당,회의실,야외무대가 설치되어 있습니다.홍천군 1등 마을답게 캠핑장,펜션 마을 전지역 wi-fi 사용이 가능하며 매년 봄 팸투어 실시, 여름엔 마을에서 재배한 홉으로 직접만든 맥주축제,마리소리 음악축제 를 열고 있습니다.계곡의 경우 수심이 다양하여 다이빙 포인트가 2곳이 있으며 아이들이 안전하게 물놀이를 할 수 있는 곳도 여러 곳 있습니다.홍천 용오름캠핑장 팸투어 다녀왔어요.요즘은 농산촌체험마을에서 캠핑과 여러프로그램을 같이 하는 곳이 추세더라고요. 아미산이 둘러쌓인 청정계곡이 흐르는 아름다운 용오름체험휴양마을 에서 운영하는 홍천 용오름캠핑장 팸투어 다녀왔어요. 테크 앞 강이...붕어빵 가족의 담너머 세상구경https://m.blog.naver.com/1092119/220711235599가을여행-홍천여행- 홍천 용오름 마을 첫째날여행의 계절 가을입니다. 요즘 저희는 강원도에 꽃힌 상태인지라...카페 행복한 이티씨와 함께하는 홍천 용오름 마을 1박2일 체험에 참가를 하였답니다! 평소 체험 시간보다 조금 늦은 출발을 해서 차가 밀리지 않으려나...귀여운 단지https://m.blog.naver.com/sanguidan/50181593653용오름마을 캠핑장여름휴가의 시즌이다.. 강원도의 계곡과 시원함을 만끽하기 위해 캠핑장을 검색하다 우연히 알게 된 홍천의 용오름 캠핑장.. 성수기라 캠핑장 요금들이 사악하다 용오름캠핑장 옆엔 해미르 캠핑장이 있는데...★살로몬의 잇츠캠핑★https://m.blog.naver.com/freeguy9040/20163628934맥주효모로 만든 용오름맥주마을 바쏘 맥주샴푸와 맥주마스크팩...1988년까지 맥주 원료인 홉을 재배하며 번성했던 강원도 홍천군 서석면 용오름 마을이란 곳이 있었습니다…

[Jenkins] 테스트링크 젠킨스 연동 [2] 빌드(Selenium-WebDriver...

[Jenkins] 테스트링크 젠킨스 연동 [2] 빌드(Selenium-WebDriver...

안녕하세요 저번 포스팅에서

테스트링크 젠킨스 연동전에 기본적인 개요 및 전체적인 프로세스 등에 대해서

포스팅하였습니다.

https://ipex.tistory.com/entry/Jenkins-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A7%81%ED%81%AC-%EC%A0%A0%ED%82%A8%EC%8A%A4-%EC%97%B0%EB%8F%99-1-%EB%B0%8F-%EC%9B%B9-%EC%9E%90%EB%8F%99%ED%99%94-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B0%9C%EC%9A%94-TestLink-with-Jenkins-Windowsver-and-webAutomation-OverView?category=767972

이번에 작성할 내용은 빌드 작업입니다.

기존 작업 기능 List

1. General 탭

오래된 빌드 삭제 (25일 설정)

2. 소스코드 관리 탭

빌드 시작전 git에서 master 브랜치를 가져와서 workpace에 세팅하는 작업

3. 빌드 유발

Build when a change is pushed to GitLab. GitLab webhook URL : 체크

없을시 GitLab Plugin 과 git plugin 설치 후 gitLab에 있는 webHook 기능으로 빌드 유발

** 빌드 유발 쪽 체크

4. 빌드 환경

Delete workspace before build start + ant style **/chromeBuilding/ 을 통하여

workspace/chromeBuilding 폴더 빌드 전 삭제

이제 5번 빌드 입니다.

Build Job 은 현재 3가지가 있습니다. (포스팅할때는 이미 다 해놓은 상태에서 포스팅!)

IE Automation

Chrome Automation

FireFox Automation

세가지에 대한 빌드는 각각 다르게 돌아가지만 다 같은 내용이기 때문에 한번 포스팅 하겟습니다.

5. 빌드

빌드는 2가지로 나뉩니다.

5.1 Selenium-WebDriver

5-2 TestLink

5.1 Selenium-WebDriver

우선 셀레니엄 웹 드라이버 코드를 빌드는 매우 단순합니다.

Build 탭 - Add build step - Execute Windows batch command

을 누르신 후에 Command 에 node _auto.js [param]

_auto.js 는 미리 작성된 셀레니엄 자동화 테스트 코드 입니다.

** 테스트 타겟인 자동화 메인 페이지의 경우 (lib가 변동되거나 할때 git으로 push 또는 merge시 같은 webhook 발생)

5-2 TestLink

자 문제의 testLink 입니다.

시작하기에 앞서 중요한 점이 있습니다. testLink 버전에 따라 이슈가 있을수 있기 때문에 버전 명을 기입하겠습니다.

testLink 1.9.16(Moka pot) 버전을 사용하고 있습니다.

Jenkins 2.141

빌드 작업 전에 설치 및 세팅 작업을 해주어야 합니다.

플러그인 설치

- Jenkins Home ( Jenkins 관리 ) -> 플러그인 관리

- 필터 : TestLink 입력 후 설치 버튼

- 재 시작 후 TestLink Plugin 설치 확인 을 위해 - Jenkins 관리 - 시스템 설정

TestLink 있는지 확인

TestLInk 접속 후 (로그인까지 완료 한 상태) 아래의 아이콘을 선택하여서 API 키 생성

TestLink Installation 에서 추가 버튼 클릭 후 아래 공란 입력

Name : ( 어떤 테스트링크에 연결할지 작성 )

URL : 테스트링크주소:포트/testlink/lib/api/xmlrpc/v1/xmlrpc.php (API 사용 주소)

만약에 잘안된다면 api 주소를 찾아봐야합니다.

Developer Key 저 위에 있는 API 인터페이스 밑 개인 API 접근 키 입력

(동작 확인)

이제 빌드 단계로 가기전에 미리 해주어야 하는 작업이 있습니다.

// 테스트링크 작업 Custom Field

//

이제 다시 빌드 단계로 가면

기존에 selenium 드라이버를 실행시키는 Command 가 있습니다. 이부분에서

Add build step ! 클릭

Invoke TestLink 클릭

화면에 나타나는 TestLink Configuration 을 작성합니다.

Invoke TestLink - TestLink Configuration

TestLink Version - TestLink Installation 에서 작성한 name을 콤보 박스에서 선택

Test Project Name - TestLink 에 있는 프로젝트 이름 (아래 그림 참조)

Test Plan Name - TestLink 에서 해당 프로젝트에 따른 테스트 계획을 만들고 해당 계획을 작성합니다.

// 테스트 링크 기본 사용법은 간단하기 때문에 따로 작성하지 않겠습니다.

Build Name - 새로운 빌드시 지정될 빌드 명을 입력합니다.

AUTOMATION_$BUILD_ID 로 되어있는데 아래 그림과같이 해당 형태로 빌드 가 자동으로 생성됩니다.

Custom Fields - 매우 중요합니다. 테스트 결과에 대한 리포팅 파일에서 해당 CustomFields를 통하여서 작업 하기 때문입니다.

// TestLink 에서 커스텀 필드를 만든 후에 해당 필드 내에 값을 test Case와 일치 시킵니다.

// Test Case의 경우 한번에 넣는 방법이 있는데 이에 관련해서는 이 포스팅 다음에 번외로 작성하겠습니다.

Invoke TestLink - TestExecution

해당란에는 2가지가 있습니다.

1. Single Build Steps

해당 빌드 작업을 한번만 실행합니다.

2. Iterative Test Build Steps

해당 빌드 작업을 여러번 실행합니다.

이해가 편하게 testlink 에서 케이스가 날라옵니다. 아래의 케이스

id : 55123

name : TOP_WIDGET_CREATE

summary : 위젯이 생성되는지 테스트합니다.

caseBind(custom설정을하였다면) : TOP_WIDGET_CREATE

....

위의 한개의 케이스가 100개 1000개 있을텐데 해당 케이스가 한번에 날라오게 됩니다.

Single Build Steps의 경우는 이미 전의 테스트가 완료된 결과가 있는데 Junit이나 testNG등 리포팅 형태가 아닐 경우

해당 결과물들을 testLink Plugin 이 찾아서 실행할수 있도록 만들어 주는 커맨드를 작성합니다.

Interative Test Build Steps의 경우는 테스트 케이스가 위에 설정한 Test Plan 에 있는 순서대로 날아옵니다.

날아오는 케이스에 대한 정보를 통해서 테스트를 실행하여 결과를 받아서 사용합니다.

플러그인 도움말을 눌러 보시면 알겠지만 해당 값들을 통해서 원하는 스크립트에 파라미터로 넘길수 있습니다.

** 주의사항 (Windows는 앞뒤로 % 가 들어가야 하며 Linux 계열은 앞에 $ 가 붙어야 합니다.

Windows - %TESTLINK_TESTCASE_ID%

Linux - $TESTLINK_TESTCASE_ID

저는 첫 Build 시 node _auto.js chrome에서 결과 리포팅 파일을 만드는 작업을 하기 때문에 Test Exceution 을 사용하지 않겠습니다.

(테스트는 셀레니엄이 자체적으로 하였고 이에대한 테스트결과를 받아서 리포팅까지 작성해 놓은 상태 - 번외편에 작성하겠습니다.)

Invoke TestLink - Result Seeking Strategy

테스트 결과를 찾아서 입력 하는 과정입니다.

어떤 형태의 결과를 찾아서 입력할지 여러 방법이 있는데요 이중에서 저는 Junit Class Name 을 선택하였습니다.

입력 결과

// 셀레니엄 빌드 스텝에서 ChromeBuilding이라는 디렉토리를 만들고 해당 안에 테스트케이스에 대한 결과 값들을 저장합니다.

위의 패턴은 Ant Style pattern 이며 더 찾아서 공부해보셔도 됩니다.

설명하자면 workspace/ChromeBuilding/ 폴더 안에 junit-*.xml 형태의 파일들을 읽는데 junit class name 이기 때문에

caseBind (Custom Field)의 값이 classname으로 지정되어있는 xml들을 찾아서 결과를 입력 합니다.

해당 junit리포팅 형태는

***** Pass Test Case < testsuite > < testcase classname = "casebind" name = "testName" >

***** Fail Test Case < testsuite > < testcase classname = "casebind" name = "testName" > < failure type = "test" > Error Message

해당형태를 지닙니다.

빌드 후 조치 단계에서는

빌드 환경에서

Delete workspace before build starts 로 해당 junit폴더를 지우고 시작했었는데요 이작업을 빌드 후 조치에서 하셔도 됩니다.

자 이제 빌드 시작 !

정상적으로 빌드가 나왔네요

눌러서 확인해보겠습니다.

45건만 자동으로 해보았는데요

첫 시작 부분은 이렇고 맨 마지막 부분은 실패한 케이스가 보이네요

일단 왜 실패했는지도 궁금하지만? 그전에 testLink 에연동이 먼저 됐는지도 봐야겠습니다.

저기 위에 결과 보면

build name : AUTOMATION_12 라고 되어있으니 testLink 에 가서확인해보겠습니다.

정상적으로 되어있는것 같습니다. 하지만 실패 케이스의 이유가 너무 궁금하기 때문에 이것을 위해서 빌드 작업에

제가 체크한 게있는데요

저부분 때문에 testLink 에서 실패 케이스로 가서 누르시면

노트 부분에 결과에 대한 xml파일이 들어가 있습니다 . !!! 이부분은 제가

junit파일 생성시에

testResultArray . reduce (( acc , curr , index , arr ) => { let junitObj = { 'testsuite' : { 'testcase' : { '@classname' :curr . tc , '@name' :curr . tc , } } }; // fail Case if ( curr . result . toLowerCase ()=== 'fail' ){ let failObj = { '#text' :curr . msg , '@type' : 'failCase' }; junitObj . testsuite . testcase [ 'failure' ] = failObj } // xml Create const junit = builder . create ( junitObj ,{ encoding: 'utf-8' }); // Create xml pretty change const xmlContent = junit . end ({ pretty: true }); if ( curr . tc . length >= 1 ){ makeJunitReportFile ( xmlContent , dirPath , curr . tc ); } }, 0 );

fail case일 경우에 실패 메시지와 같이 넣어 주었는데요

해당 xml을 눌러주게되면?

실패한 내용 (try catch 로 엮었던 직접 작성하였던) 확인이 가능합니다.!!

자동화 플로우가 다 끝났습니다.

Chrome과 FireFox는 거의 비슷하여서 문제가 없지만 ie의 경우는 문제가 많아서.. 트러블 슈팅 가이드를 따로 작성해야 할듯 합니다.

다음 포스팅은 Jenkins TestLink Intergration 마지막 작업으로

번외

1. TestCase를 한번에 넣는 방법

2. 테스트가 어떤식으로 제작되었고 젠킨스 빌드 과정 중 결과를 어떻게 받아서 처리 하였는지

로 작성하겠습니다.

1번과 2는 사실 나눈건 아니고 하나로 보시면 됩니다.

긴글 읽어주셔서 감사합니다.

꾸벅

from http://ipex.tistory.com/209 by ccl(S) rewrite - 2020-03-07 15:54:35

댓글

이 블로그의 인기 게시물

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

[C언어] 백준 알고리즘 - 숫자의 개수(2577번)

[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 2. 언어 특성 활용...