본문 바로가기
Today I learned

2020 12 08

by soheemon 2020. 12. 8.

Selenium IDE로 단순 반복 웹기능테스트 자동화하기

 

내가 만나본 대부분의 개발자들은 반복하는 단순 업무를 경멸했다. 그리고 나또한 그렇다...

현재 있는곳은 배포잡에 기능테스트가 자동화가 되어있지 않아서 개발자들이 손수 하나하나 테스트를 했어야만 했다..

 

"싫어! 단순반복 테스트 싫다구!"

 

대략 1년동안 해야지..해야지 마음만 먹고 있다가 코로나가 심해진 이 시점에 진지하게 한번 프로젝트를 시작해본다..

 

Selenium + IDE

 

몇년전에 진행했었던 자동화 토이 프로젝트는 Selenium + python으로 코드를 한땀한땀 작성해서 진행했었다.

이번에도 그렇게 진행해야지.. 하고 찾아봤는데 왠걸.. Selenium IDE라는 정말 세상편한 extention이 나왔다.

Record 기능을 이용해서.. 한땀한땀 스크립트로 xpath를 따오고.. 클릭 커맨드를 입력하는 번거로운 작업을 제거할수 있다 ㅠㅠ

 

설치도 동작도 테스트 실행도 정말 너무 간단하다. 테스트할 페이지를 입력하고 record후 테스트 시작!

 

1) 설치

www.selenium.dev/selenium-ide/ 에 접속 후 다운로드 버튼을 클릭한다.

나는 크롬을 사용할것이다.
설치 버튼을 클릭한다. 나는 이미 설치해서 삭제버튼이 보임

2) 실행

클릭클릭

3) 테스트로 아주 간단한 테스트 케이스 실행해보기

 

실행을 하면 아래와 같은 팝업이 뜬다.

a) Record

우선 테스트 동작을 자동으로 녹화하기위해.. Record a new test in a new project를 클릭한다. 

b) 새로운 프로젝트 생성

프로젝트를 생성한다.

TMI: 프로젝트 이름은 언제라도 변경 가능하다고 하다. 

c) 테스트할 URL을 입력하자.START RECORDING 버튼을 클릭하면 자동으로 새 크롬창이 열리고 해당 URL로 접속이 된다..

 

너무나도 당연하지만, 실제로 입력한 URL로 요청이 날아가므로.. 상용서버를 향한 테스트를 자제하자(ㅠㅠ)

d) 새로운 크롬창에서 테스트할 동작을 실행한다. 

...간단한 동작을 실행했다. 사진은 생략

 

e) 테스트를 끊는다.

단축키 ctrl + u를 클릭하거나, Selenium IDE로 돌아가서 중지버튼을 클릭한다.그 후 테스트케이스의 이름을 입력한다.

e)실행버튼 클릭

실행버튼을 클릭하거나 Ctrl + R 단축키를 입력하면 테스트가 시작된다.

 

++너무나도 당연하지만, 실제로 입력한 URL로 요청이 날아가므로.. 상용서버를 향한 테스트를 자제하자(ㅠㅠ)

f) 새창이 열리고.. 자동으로 테스트가 돌아가는것을 지켜보며 감동의 눈물을 흘린다

"꺄! 나 대신 테스트 해줘서 고마워. selenium IDE야!"

 

4) 그리고 남겨진 고민들

이후에 진행할것

 

몇번 Selenium IDE를 가지고 놀고있다보면 이러한 고민이 든다.

 

'어.. 직전 테스트시나리오에 로그인을 해놨더니.. 로그인 버튼을 못찾아서 에러가 발생하네''음.. 시나리오는 잘 끝났는데 왜 test result는 fail로 떨어지는거지?''여러개의 테스트케이스를 조합해서 한번에 실행하는 방법은 없을까...'

 

답은 Record한 command들을 그대로 사용하는것이 아니라, 수정하거나, if 조건을 넣는등 개발자가 어느정도 수정이 필요하다.

 

그래서 이후에 진행할것은, 참고 문서나, API 문서를 보면서 command에 익숙해 지는것!

 

우리 자주 만나자 selenium IDE야!

 

참고 

1. 공식 문서 www.selenium.dev/selenium-ide/docs/en/introduction/getting-started

 

'Today I learned' 카테고리의 다른 글

2020 12 12  (0) 2020.12.12
2020 12 08  (0) 2020.12.08
2020 12 04  (0) 2020.12.04
2020 12 03  (0) 2020.12.03
2020 12 02  (0) 2020.12.02

댓글