본문 바로가기
Today I learned

2020 12 12

by soheemon 2020. 12. 12.

selenium IDE으로 일주일 사용 소감

로그인, 회원정보 수정 등등.. 다섯가지 정도의 일일점검 테스트 자동화를 했다.

당연한 말이겠지만 매일 수동으로 테스트하는것보다 정말 편하다..

 

- record기능은 정말 편하다. 하지만 약간의 수정이 필요하다.

파이썬으로 직접 xpath 하나하나 따가면서 한줄한줄 코딩하는것보다 굉장히 편리하다. 

또한, 모듈을 사용해서 직접 스크립트를 짰을때는 요소가 로딩되기 전에 클릭을 하면

요소를 기다리지 않고 찾을수 없다는 에러가 나는 문제가 있었는데, IDE에서는 모듈이 나타날때까지 timeout이 기본적으로 걸려있다.. (감동) 요소가 로딩될때까지 기다리는 코드를 넣을필요가 없다.

하지만 record한 결과를 그대로 사용할수는 없고 중간중간 불필요한 명령어는 지워주거나, 타겟을 다시 잡아줘야 했다. 아주 못쓸정도로 불편하진 않았음.

- 프로그래밍적인 요소는.. 직접 코딩하는것만큼은 자유롭지는 않다.

특히 반복되는 구간을 함수로 딸수있는 방법은 없나 찾아봤지만... 찾아볼수 없었다... label 따서 goto문 사용하는것만 있어도 좋을텐데.. (기능을 못 찾은 거일수도 있다.. 파이어폭스/크롬 버전이 있는데 파폭에서는 존재하는것같다..ㅠ)

 

누구나 테스트코드를 만들수 있을 정도로 편리하다. 나머지 테스트도 전부 자동화할 예정이다.

jenkins action에 넣어서 자동으로 스테이징계에 배포 후 테스트되면 좋을텐데.. 이부분은 연구해 봐야겠다.

 

+ 짧은 삽질기 팁팁팁

 

1) Test Excution speed 중간으로 맞춰놓기

셀레니움IDE를 실행하고 나서 제일 먼저 명령어 실행시간을 중간으로 맞춰놓는것을 권장한다.

실행 직후 Fast로 되어있는데, 테스트시나리오 실행이 너무 빨라져서 모듈을 못찾는 경우가 발생한다.

맞춰놔도 왜인지 모르겠지만, Fast로 초기화 되어있다.

 

2) 인증번호나 어쩔수 없이 사람의 개입이 필요할때는 debugger 명령어를 사용하자.

원래 이 용도로 만들어진 명령어 인지는 모르겠지만(!) debugger 명령어를 사용하면 테스트가 일시 중지된다.

SMS로 날아오는 인증번호 문자입력 같은경우 어쩔수 없이 사용자의 개입이 필요하므로 인증번호 입력 이전에 걸어두면 편리하다.

주의할점은, 실행 버튼을 클릭하면 처음부터 테스트를 시작하기 때문에 일시중지로 보이는 || 모양 버튼을 클릭해야지 이어서 테스트를 진행할 수 있다.

 

3) 테스트시나리오를 처음부터 말고 내가 원하는 위치부터 실행하고 싶을때

특정 명령어 오른쪽 버튼을 누르면 play from here이 나온다. 

 

테스트 시나리오 중간부터 실행되는것이기 때문에, 화면은 해당 시나리오가 실행될 수 있는 상태여야 한다.

 

이게 무슨말인가 하면..

예를들어 '포스팅 내용을 입력한다'에 해당하는 명령어에서 부터 테스트를 시작하려면, 당연하게도 로그인이나, 기타 포스팅하기 메뉴에 진입하기 위한 테스트들은 진행된 상태여야 한다는 말이다.

그렇지 않으면 포스팅 내용 텍스트박스를 찾지 못하고 에러가 난다. 

 

4) 레코드를 했는데.. 이게 당최 어떤 요소인지 모르겠을때

타겟이 대체 어떤버튼이야?! 궁금할땐 디버깅 되고있는 브라우저창을 열어놓은 상태로

명령어를 선택 후 돋보기 버튼을 클릭한다.

그러면 대충 이런 효과가 나면서 어떤 요소인지를 알려준다.

 

5) 내가 선택하는 요소의 target을 자동으로 입력하기

디버깅 되고있는 브라우저창을 열어놓은 상태로 화살표 버튼을 클릭한다.

그리고 원하는 요소에 커서를 올리면 파랗게 표시된다. 클릭하자.

그러면 자동으로 입력된다 참 쉽당!

 

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

2020 12 14  (0) 2020.12.14
2020 12 13  (0) 2020.12.13
2020 12 08  (0) 2020.12.08
2020 12 08  (0) 2020.12.08
2020 12 04  (0) 2020.12.04

댓글