이번 포스팅에선 동일한 스크립트가 시간이 지남에 따라 실행되지 않는 이유와 해결 방안에 대해 다뤄보겠습니다.
우선 지난 포스팅에서와 같은 방법으로 Recorder를 사용하여
네이버 웹 진입 > 뉴스 > 스포츠 뉴스로 진입하는 스크립트를 작성해보았습니다.
2020/10/31 - [Katalon studio] - 프로젝트 설정과 자동화 스크립트 작성 예제
Record 과정에서 캡쳐된 오브젝트들이 Object Repository에 저장되었습니다.
먼저 '뉴스' 탭을 클릭하여 캡쳐된 'a_'라는 오브젝트를 더블클릭해서 어떤 구성으로 이루어져 있는지 확인해보겠습니다.
Selection Method가 XPath로 잡혀있고 하단에 해당 오브젝트의 XPath 정보들이 저장되어 있네요.
* XPath는 테스트 자동화에 사용되는 HTML 선택기 중 하나로, 오브젝트의 경로를 나타내는 정보라고 생각하시면 되겠습니다.
Katalon의 공식 Docs에서는 절대XPath(Absolute XPath)를 사용하지 않을 것을 권고하고 있습니다.
docs.katalon.com/katalon-studio/docs/xpath_katalon_studio_tips.html#sample-page
오브젝트를 선택할때 XPath, Attributes, CSS, Image 중 어떤 수단을 사용할 지 선택이 가능합니다!
여기서 어제는 실행됐던 케이스가 오늘은 실행되지 않은 이유 를 알수 있습니다.
Selection Method가 Xpath로 되어 있을 경우 카탈론은 Selected Locator 값으로 오브젝트를 판단합니다
Selected Locator 값을 확인해 보면
'//div[@id='NM_FAVORITE']/div/ul[2]/li[2]/a' 라는 값이 입력되어 있습니다.
해석하면 /div/ul[2]/li[2]/a 루트의 NM_FAVORITE라는 고유값을 가진 객체 가 됩니다.
하지만 루트 요소와 개체 사이에 수십개의 요소가 존재할 수 있고, 동적 요소들이 포함되어 있을 확률이 높습니다.
그러므로 오늘 작성한 스크립트가 내일이 아니라 당장 한두시간 뒤에 실행되지 않아도 이상하지 않습니다.
그렇다면 어떻게 해결 할 수 있을까요?
첫번째 해결방안.
- XPath를 짧고 명확하게.
예를들면, 99마리의 호랑이와 1마리의 코끼리가 섞인곳에서 코끼리를 찾아내려면
'다리가 네개이고, 호피무늬가 없고, 무게가 1톤이 넘는 동물을 찾아줘' 보다는
'초식동물을 찾아줘' 가 정확하고 편하겠죠?
아래 Object's Xpaths를 보니 xpath:link에 //a[contains(text(),'뉴스')]라는 value가 저장되어 있네요.
'a_'라는 오브젝트에 '뉴스'라는 text가 포함되어 있는것만으로도 이 오브젝트가 '뉴스'탭 버튼임을 정확히 지칭하게 됩니다.
따라서 xpath:link의 value인 //a[contains(text(),'뉴스')]를 복사해서 Selected Locator 값에 붙여넣어주면 변함없이 사용 가능하게 됩니다. (다만 대공사 수준의 UI 변경시에는 오브젝트를 재설정 하는 작업이 필요할 수 있습니다)
두번째 해결방안.
- 편하게 Attributes에서 선택하세요.
Selection Method에서 Attributes를 선택하면 아래에 Object's Properties가 나타납니다.
'Detect object by?'와 체크박스가 보입니다.
여기서 해당 오브젝트를 특정할 수 있는 요소들을 선택하면 됩니다.
저는 href - equals - https://news.naver.com/
그리고 text - equals - 뉴스
이렇게 선택해보겠습니다. (href는 하이퍼링크라고 생각하시면 됩니다.)
'뉴스'라는 text를 가지고 있고, https://news.naver.com/로 랜딩되는 링크를 가진 요소를 특정하게 됩니다.
이러한 방법으로도 해결 할 수 있습니다.
다음 포스팅에서는 협업의 시작이 되는 Github 연동 방법에 대해 포스팅 하도록 하겠습니다.
통합 Branch로의 Merge에 실패합니다. (0) | 2020.11.19 |
---|---|
협업을 위한 Katalon studio와 Github 연동하기 (0) | 2020.11.16 |
프로젝트 설정과 자동화 스크립트 작성 예제 (0) | 2020.10.31 |
Katalon studio 설치(For Windows) (0) | 2020.10.29 |
Katalon studio를 선택한이유 (0) | 2020.10.29 |